正则表达式
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式的匹配
re.match函数
re.mach尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none.
函数语法
re.match(pattern,string,flads = 0)
函数参数说明
#匹配的正则表达式
pattern
#要匹配的字符串
string
#标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等
flags
匹配成功re.match方法返回一个匹配的对象,否则返回None。
实例
import re
print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配
print(re.match('com', 'www.runoob.com')) # 不在起始位置匹配
运行结果
(0, 3)
None
re.search方法
re.search 扫描整个字符串并返回第一个成功的匹配。
函数语法
re.search(pattern, string, flags=0)
参数说明
#匹配的正则表达式
pattern
#要匹配的字符串
string
# 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等
flags
re.match与re.search的区别
re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回 None,而 re.search 匹配整个字符串,直到找到一个匹配。
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!!")
运行结果如下
No match!!
search --> matchObj.group() : dogs