介绍
这篇文章将为大家详细讲解有关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里面搜索匹配()和()的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。