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

本文通过实例代码对比了Python中re.search和re.match两个函数的使用。re.match只在字符串开始位置匹配,只有开始位置匹配成功才会返回;而re.search在整个字符串内查找匹配,找到第一个成功匹配就返回,否则返回None。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值