希望通过以下的小程序实例,进一步探究re.search 与 re.match 的用法及其区别.
代码实例如下
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#比较re.search 和re.match
'''re.match(pattern, string)函数只从string的开始位置匹配,即使是中间位置有匹配的项,也不算匹配成功
也就是说只有在开始位置匹配成功,才有返回,若不是开始位置匹配成功,则返回None
re.search(pattern, string)会在string内查找匹配,只要找到一个成功的匹配,就返回,若在整个string内都找不到匹配的,则返回None'''
import re
def qubiesearch():#测试search可以匹配时的返回结果
se=re.search('\dcom','www.4comrunoob.5com').group()
return(se)
def qubiematch(x):#测试match可以匹配时的返回结果
if re.match(x,'comwww.runcomoob') is not None:
se=re.match(x,'comwww.runcomoob').group()
return(se)
if re.match(x,'comwww.runcomoob') is None:
return('None')
def qubiesearchandmatch(x):#通过例子,测试search 和 match 的区别
se0=re.search(x,'www.4comrunoob.5com').group()
print(se0)
if re.match(x,'www.4comrunoob.5com') is not None:
se1=re.match(x,'www.4comrunoob.5com').group()
print(se1)
if re.match(x,'www.4comrunoob.5com') is None:
print('match是从头开始查找匹配的,如果不是从头开始,则返回None')
print('测试search可以匹配时的返回结果')
mu0=qubiesearch()
print(mu0)
print('测试match可以匹配时的返回结果')
sentence1='com'
mu1=qubiematch(sentence1)
print(mu1)
print('测试match不可以匹配时的返回结果')
sentence2='com4'
mu2=qubiematch(sentence2)
print(mu2)
sentence3='4com'
mu3=qubiematch(sentence3)
print(mu3)
print('通过例子,测试search 和 match 的区别')
qubiesearchandmatch('noob')
运行结果如下:
测试search可以匹配时的返回结果
4com
测试match可以匹配时的返回结果
com
测试match不可以匹配时的返回结果
None
None
通过例子,测试search 和 match 的区别
noob
match是从头开始查找匹配的,如果不是从头开始,则返回None
re.match(pattern, string)函数只从string的开始位置匹配,即使是中间位置有匹配的项,也不算匹配成功,也就是说只有在开始位置匹配成功,才有返回,若不是开始位置匹配成功,则返回None
re.search(pattern, string)会在string内查找匹配,只要找到一个成功的匹配,就返回,若在整个string内都找不到匹配的,则返回None