python3正则
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符是否与某种模式匹配。
在python中,使用re模块来处理正则表达式。
re模块提供了一组函数,允许你在字符串中进行模式匹配、搜索和替换操作。
1、re.match和re.search函数
re.match(pattern, string, flags=0) #pattern:正则表达式;string:字符串;flags:标志位。
re.search(pattern, string, flags=0) #flags:标志位,控制正则表达式的匹配方式,例如大小写
#!/usr/bin/python3
import re
line = "Cats are smarter than dogs"
# .* 表示任意匹配除换行符(\n、\r)之外的任何单个或多个字符
# (.*?) 表示"非贪婪"模式,只保存第一个匹配到的子串
matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)
if matchObj:
print ("matchObj.group() : ", matchObj.group())
print ("matchObj.group(1) : ", matchObj.group(1))
print ("matchObj.group(2) : ", matchObj.group(2))
else:
print ("No match!!")
re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回 None,而 re.search 匹配整个字符串,直到找到一个匹配。
#!/usr/bin/python3
import re
line = "Cats are smarter than dogs"
matchObj = re.match( r'dogs', line, re.M|re.I)
if matchObj:
print ("match --> matchObj.group() : ", matchObj.group())
else:
print ("No match!!")
matchObj = re.search( r'dogs', line, re.M|re.I)
if matchObj:
print ("search --> matchObj.group() : ", matchObj.group())
else:
print ("No match!!")