基础 - 正则表达式

  • 作者:KK

  • 发表日期:2020.03.12


判断是否匹配一个表达式 search

re.search('\d+', 'abc123defg'),匹配失败会返回 None,否则就是个 re.Match 对象。


只提取部分内容 search

就是只提取括号里的匹配内容

import re

result = re.search('c(\d+)', 'abc123defg')
result.group() # c123   就是整个表达式匹配到的内容
result.group(1) # 123 就是第一个括号的内容

提取多部分内容 findall

import re

result = re.findall(r'w(\d+).+x(\d+)', 'aaw123erereqx456')
print(type(result)) # list
print(result[0][0]) # 123
print(result[0][1]) # 456

替换内容 sub

import re

result = re.sub('\d+', '____', 'abc123zyz')
print(result) # abc___xyz

少用的 - 从第一个字符开始匹配

re.match('abc', 'abcdefg') ,其实这就相当于re.search('^abc', 'abcdefg'),两者的区别在于被匹配的字符串带有回车符造成多行内容时,match 只匹配第一行的起始,而 search 会匹配每一行的起始