ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第十二课~

2021-05-30 12:01:19  阅读:178  来源: 互联网

标签:第十二 string re 正则表达式 对象 字符串 match


文章目录

正则表达式(二)

一、re模块主要方法

  • 在Python中主要使用re模块来实现正则表达式的操作,具体使用时,既可以直接使用re模块的函数进行字符串处理,也可以将模块编译为正则表达式对象,然后使用正则表达式对象的方法来操作字符串。
    在这里插入图片描述

二、直接使用re模块方法

  • 可以直接使用re模块函数来实现正则表达式操作
>>> import re                            #导入re模块
>>> text = 'alpha. beta....gamma delta'  #测试用的字符串
>>> re.split('[\. ]+', text)      #使用指定字符作为分隔符进行分隔 (1)
>>> re.split('[\. ]+', text, maxsplit=2) #最多分隔2次 (2)
['alpha', 'beta', 'gamma', 'delta']
['alpha', 'beta', 'gamma delta']

三、使用正则表达式对象

(一)
  • 首先使用re模块的compile()方法将正则表达式编译生成正则表达式对象,然后再使用正则表达式对象提供的方法进行字符串处理。
  • 使用编译后的正则表达式对象可以提高字符串处理速度,也提供了更强大的文本处理功能
  • 正则表达式对象的match(string[, pos[, endpos]])方法用于在字符串开头或指定位置进行搜索,模式必须出现在字符串开头或指定位置;
  • 正则表达式对象的search(string[, pos[, endpos]])方法用于在整个字符串中进行搜索;
  • 正则表达式对象的findall(string[, pos[, endpos]])方法用于在字符串中查找所有符合正则表达式的字符串并返回列表。
(二)match()、search()、findall()
  • match(string[, pos[, endpos]])方法在字符串开头或指定位置进行搜索,模式必须出现在字符串开头或指定位置;
  • search(string[, pos[, endpos]])方法在整个字符串或指定范围中进行搜索;
  • findall(string[, pos[, endpos]])方法在字符串指定范围中查找所有符合正则表达式的字符串并以列表形式返回。
>>> import re
>>> example = 'ShanDong Institute of Business and Technology'
>>> pattern = re.compile(r'\bB\w+\b')  #查找以B开头的单词
>>> pattern.findall(example)   #使用正则表达式对象的findall()方法(1)
>>> pattern = re.compile(r'\b[a-zA-Z]{3}\b')#查找3个字母长的单词
>>> pattern.findall(example)   #(2)
['Business']    #(1)
['and']       #(2)
(三)sub()、subn()
  • 正则表达式对象的sub(repl, string[, count = 0])和subn(repl, string[, count = 0])方法用来实现字符串替换功能,其中参数repl可以为字符串或返回字符串的可调用对象
(四)字符串分隔
  • 正则表达式对象的split(string[, maxsplit = 0])方法用来实现字符串分隔
>>> example = r'one,two,three.four/five\six?seven[eight]nine|ten'
>>> pattern = re.compile(r'[,./\\?[\]\|]')     #指定多个可能的分隔符
>>> pattern.split(example)
['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten']

四、子模式与match对象

  • 使用()表示一个子模式,括号中的内容作为一个整体处理,例如’(red)+’可以匹配’redred’、’redredred‘等多个重复’red’的情况。
>>> pattern = re.compile(r'(\d{3,4})-(\d{7,8})')
>>> pattern.findall(telNumber)
[('0535', '1234567'), ('010', '12345678'), ('025', '87654321')]
  • 正则表达式对象的match方法和search方法匹配成功后返回match对象。match对象的主要方法有:
    group():返回匹配的一个或多个子模式内容
    groups():返回一个包含匹配的所有子模式内容的元组
    groupdict():返回包含匹配的所有命名子模式内容的字典
    start():返回指定子模式内容的起始位置
    end():返回指定子模式内容的结束位置的前一个位置
    span():返回一个包含指定子模式内容起始位置和结束位置前一个位置的元组。

标签:第十二,string,re,正则表达式,对象,字符串,match
来源: https://blog.csdn.net/m0_55865093/article/details/117395930

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有