第十二课~
作者:互联网
文章目录
正则表达式(二)
一、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