Python里面搜索匹配()和()的区别是什么

  介绍

这篇文章将为大家详细讲解有关Python里面搜索匹配()和()的区别是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

<强> Python里面搜索匹配()和()的区别

匹配()函数只检测字符串开头位置是否匹配,匹配成功才会返回结果,否则返回没有。

import 再保险   打印(re.match (“func",,“function"))   #,打印结果,& lt; _sre.SRE_Match 对象;,跨度=(0,4),匹配=& # 39;func # 39;比;   打印(re.match (“func",,“function") .span ())   #,打印结果,,(0,4)   打印(re.match (“func1",,“function"))   #,打印结果,没有

注意:打印(re.match (“func1",“function") .span())会报错,因为取不到。

搜索()函数会在整个字符串内查找模式匹配,直到找到第一个匹配,然后返回一个包含匹配信息的对象。该对象可以通过调用组()方法得到匹配的字符串,如果字符串没有匹配,则返回没有。

import 再保险   打印(re.search (“tion",,“function"))   #,打印结果,& lt; _sre.SRE_Match 对象;,跨度=(4,8),匹配=& # 39;加强# 39;比;   打印(re.search (“tion",,“function") .span ())   #,打印结果,,(4,8)   打印(re.search (“tion1",,“function"))   #,打印结果,没有

注意:打印(re.search (“tion1",“function") .span())会报错,因为取不到tion1。

<强>再保险模块下的其他常用方法

import 再保险   打印(re.findall (“a",,“a  aa  ab  ac")),, #,返回所有满足匹配条件的结果,放在列表里   #,(& # 39;一个# 39;,,& # 39;一个# 39;,,& # 39;一个# 39;,,& # 39;一个# 39;,,& # 39;一个# 39;】   打印(re.split (& # 39; (ab) & # 39;,, & # 39; abcd # 39;)),, #,先按& # 39;一个# 39;分割得到& # 39;& # 39;和& # 39;bcd # 39;,在对& # 39;& # 39;和& # 39;bcd # 39;分别按& # 39;b # 39;分割   #,(& # 39;& # 39;,,& # 39;& # 39;,,& # 39;cd # 39;】   ret =, re.sub (& # 39; \ d # 39;,, & # 39; h # 39;,, & # 39; eva3egon4yuan4& # 39;,, 1) #将数字替换成& # 39;h # 39;,参数1表示只替换1个   打印(ret), # evaHegon4yuan4   ret =, re.subn (& # 39; \ d # 39;,, & # 39; h # 39;,, & # 39; eva3egon4yuan4& # 39;) #将数字替换成& # 39;h # 39;,返回元组(替换的结果,替换了多少次)   打印(ret)   时间=obj  re.compile (& # 39; \ d{3} & # 39;),, #将正则表达式编译成为一个,正则表达式对象,规则要匹配的是3个数字   时间=ret  obj.search (& # 39; abc123eeee& # 39;), #正则表达式对象调用搜索,参数为待匹配的字符串   print (ret.group()),, #结果,:123   import 再保险   时间=ret  re.finditer (& # 39; \ d # 39;,, & # 39; ds3sy4784a& # 39;),,, #发现返回一个存放匹配结果的迭代器   打印(ret),, #, & lt; callable_iterator  object  at  0 x10195f940>   print (next (ret) .group()),, #查看第一个结果   print (next (ret) .group()),, #查看第二个结果   打印([i.group (), for 小姐:拷贝ret]),, #查看剩余的左右结果

注意:

1 findall的优先级查询:

import 再保险   时间=ret  re.findall (& # 39; www。(百度| jd)。com # 39;,, & # 39; www.jd.com& # 39;)   打印(ret),, #, (& # 39; jd # 39;),,,,,这是因为findall会优先把匹配结果组里内容返回,如果想要匹配结果,取消权限即可   时间=ret  re.findall (& # 39; www。(?:百度| jd)。com # 39;,, & # 39; www.jd.com& # 39;)   print (ret),, #, (& # 39; www.jd.com& # 39;)

2分的优先级查询

ret=re.split (“\ d +“,“eva3egon4yuan")   打印(ret), #结果,:,(& # 39;eva # 39;,, & # 39;大多# 39;,,& # 39;人民币# 39;】   ret=re.split (“(\ d +)“,“eva3egon4yuan")   打印(ret), #结果,:,(& # 39;eva # 39;,, & # 39; 3 & # 39;,, & # 39;大多# 39;,,& # 39;4 & # 39;,,& # 39;人民币# 39;】   #在匹配部分加上()之后所切出的结果是不同的,   #没有()的没有保留所匹配的项,但是有()的却能够保留了匹配的项,   #这个在某些需要保留匹配部分的使用过程是非常重要的。

关于Python里面搜索匹配()和()的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

Python里面搜索匹配()和()的区别是什么