re.search 与 re.match 的用法区别

问题描述

希望通过以下的小程序实例,进一步探究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

你可能感兴趣的:(Python)