python正则表达式re.match以及re.search函数
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
例子1:
#!/usr/bin/python
import re
print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配 #过滤掉一些信息,只留位置,返回元组
print(re.match('com', 'www.runoob.com')) # 不在起始位置匹配
结果为:
(0,3)
None
例子2:
#!/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!!")
以上实例执行结果如下:
matchObj.group() : Cats are smarter than dogs
matchObj.group(1) : Cats
matchObj.group(2) : smarter
re.search 扫描整个字符串并返回第一个成功的匹配。
#!/usr/bin/python3
import re
print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配
print(re.search('com', 'www.runoob.com').span()) # 不在起始位置匹配
结果为:
(0, 3)
(11, 14)