Python3正则表达式


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!!")


点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注