正则表达式
匹配需要的数据
| import re
line = 'abc target ddd target2 d'
match_obj = re.match(r'abc (.*?) ddd (.*?) d', line, re.M|re.I)
if match_obj:
print(match_obj.group())
print(match_obj.group(1))
print(match_obj.group(2))
|
将匹配到的内容传入函数
示例:
| import re
def double(matched):
value = int(matched.group('value'))
return str(value * 2)
s = 'A23G4HFD567'
print(re.sub('(?P<value>\d+)', double, s))
|
在re.sub('(?P<value>\d+)', <function_name>, <string>)
中,(?P<value>\d+)
的意思是命名一个名字为value
的组,匹配规则符合后面的\d+
,然后将匹配到的内容传入后面的<function_name>
函数。
切分字符时保留分割字符
使用re.split时,对用于分割的正则表达式添加括号
,可以保留分割字符。例如:
| >>> line='abc,dag,dag'
>>> re.split(r'(,)', line)
['abc', ',', 'dag', ',', 'dag']
|
最后更新:
2022-06-08