这篇文章主要为大家分享python中正则表达式分组和字符串匹配的使用方法。文中还介绍了使用findall和发现函数查找所有匹配正则表达式的字符串的方法,希望大家通过这篇文章能有所收获。,,,,,,,,,,,,,,,,,,,,,,,,,,,,以前,
<> <代码> #分组 #正则表达式中用一对圆括号括起来的部分被称为一个分组 # & # 39;(\ d \ d \ d) (\ d \ d) & # 39; 进口再保险 & # 39;& # 39;& # 39; 1. 只有圆括号括起来的部分才算一组,如果正则表达式中既有被圆括号括起来的部分, 也有未被圆括号括起来的部分,那么只将圆括号括起来的部分算一组 2. 组织方法,如果不指定参数,会返回匹配的整个字符串,如果加参数,会返回指定 分组的字符串,组索引从1开始 3.组织方法,以元组形式返回匹配的所有分组 4. 分组的索引是从1开始的 & # 39;& # 39;& # 39; #分3组,三个数字4个数字2个小写字母 m=re.match (& # 39; (\ d {3}) - \ d {4} [a - z] {2} & # 39;, & # 39; 123 - 4567 xy # 39;) 打印(m),,,,,# & lt;再保险。匹配对象;跨度=(0,11),配=& # 39;123 - 4567 xy # 39;比; print (m.groups ()), # (& # 39; 123 & # 39;) print (m.group ()),# 123 - 4567 - xy 打印(m.group (1)), # 123 打印(& # 39;- - - - - - - - - - - - - - - - - - # 39;) m=re.match (& # 39; (\ d {3}) - (\ d {4}) [a - z] {2} & # 39;, & # 39; 123 - 4567 xy # 39;) 打印(m),,,,,,,# & lt;再保险。匹配对象;跨度=(0,11),配=& # 39;123 - 4567 xy # 39;比; print (m.groups ()),#(& # 39;123 & # 39;& # 39;4567 & # 39;)这个是返回一个元组只要是分组里面的就放在元组里 print (m.group ()),# 123 - 4567 - xy 打印(m.group (1) # 123 打印(m.group (2) # 456 打印(& # 39;- - - - - - - - - - - & # 39;) m=re.match (& # 39; (\ d {3}) - (\ d {4}) ([a - z] {2}) & # 39;, & # 39; 123 - 4567 xy # 39;) 打印(m),,,,,# & lt;再保险。匹配对象;跨度=(0,11),配=& # 39;123 - 4567 xy # 39;比; print (m.groups ()), # (& # 39; 123 & # 39; & # 39; 4567 & # 39;, & # 39; xy # 39;) print (m.group ()),# 123 - 4567 - xy 打印(m.group (1)), # 123 打印(m.group (2)), # 456 打印(m.group (3)), # xy 打印(& # 39;- - - - - - - - - - - - - - - - - # 39;) m=re.match (& # 39; (\ d {3} - \ d {4})——([a - z] {2}) & # 39;, & # 39; 123 - 4567 xy # 39;) 打印(m),,,,,# & lt;再保险。匹配对象;跨度=(0,11),配=& # 39;123 - 4567 xy # 39;比; print (m.groups ()),# (& # 39;123 - 4567 & # 39;,& # 39;xy # 39;) print (m.group ()),# 123 - 4567 - xy 打印(m.group (1)),# 123 - 4567 打印(m.group (2)),# xy 代码><代码> #匹配字符串的起始和结尾以及单词边界 & # 39;& # 39;& # 39; “^”:匹配字符串的开始 “$”:匹配字符串的结束 “\ b":匹配单词边界 单词边界:是指空格或标点符号 “;喂?“,这个左右2侧都有边界 “;world0",这个表示左侧有边界,右侧没有边界 & # 39;& # 39;& # 39; 进口再保险 #“The"必须在字符串的开始才会搜索到 m=re.search(& # 39;知道# 39;,& # 39;abc的# 39;公司) 打印(m),,# & lt;再保险。匹配对象;跨度=(4、7)匹配=& # 39;知道# 39;比; m=re.search(& # 39; ^知道# 39;,& # 39;总线# 39;公司) 打印(m),,# & lt;再保险。匹配对象;跨度=(0 3)匹配=& # 39;知道# 39;比; #的必须在字符串的结尾才会搜索到 m=re.search(& # 39; $ & # 39;, & # 39;结束# 39;公司) 打印(m),,#没有 m=re.search (& # 39; $ & # 39;, & # 39; end.The& # 39;) 打印(m),,# & lt;再保险。匹配对象;跨度=(4、7)匹配=& # 39;知道# 39;比; 打印(“- - - - - - - - - - - - -产生绯闻。) #要求& # 39;这个# 39;左侧必须有边界才能搜索到 m=re.search (" # 39; \ bthis& # 39;,“你们# 39;年代呢?“),,#不使用r里面的\ b就会给你转义了 打印(m),,# & lt;再保险。匹配对象;跨度=(7、11)匹配=& # 39;这个# 39;比; m=re.search (" # 39; \ bthis& # 39;,“这是一辆公共汽车!”) 打印(m),,# & lt;再保险。匹配对象;跨度=(0,4),配=& # 39;这个# 39;比; m=re.search (" # 39; \ bthis& # 39;,“& lt; this>一辆公共汽车!”) 打印(m),,# & lt;再保险。匹配对象;跨度=(1、5)匹配=& # 39;这个# 39;比; m=re.search (" # 39; \ bthis& # 39;,“1234年这是一辆公共汽车!”) 打印(m),,#没有 m=re.search(" # 39; \地层厚度\ b # 39;,“你们# 39;s this123") 打印(m),,#没有代码>
<代码> #使用findall和发现函数查找所有匹配正则表达式的字符串 & # 39;& # 39;& # 39; findall:通过列表返回所有满足条件的字符串,DOM,,这是所有结果一起返回 发现:将搜索结果通过一个迭代器返回,萨克斯,,,这个不是所有的返回 & # 39;& # 39;& # 39; 进口再保险 s=& # 39; 12-a-abc54-a-xyz——78 - a - ytr& # 39; 结果=re.findall (" # 39; \ \ d -[一][a - z] {3} & # 39;, s) 打印(结果),,,,,,,,,,,,,,,,,# (& # 39;12-a-abc& # 39; & # 39; 54-a-xyz& # 39;】 结果=re.findall (" # 39; \ \ d - (aA) [a - z] {3} & # 39;, s),#这一步里面的(aA)也是忽略大小写 打印(结果),,,,,,,,,,,,,,,# (& # 39;12-a-abc& # 39; & # 39; 54-a-xyz& # 39;, & # 39; 78 - a - ytr& # 39;】 结果=re.findall (" # 39; (\ d \ d - (aA))——([a - z] {3}) & # 39;, s),#分组返回拆成一个组 打印(结果),,,,,,,,,,,,,,,# ((& # 39;12—# 39;& # 39;abc # 39;), (& # 39; 54-a& # 39; & # 39; xyz # 39;),(& # 39; 78 -一个# 39;,& # 39;ytr& # 39;)) s1=& # 39; 12-a-abc54-a-xYz——78 - a - ytr& # 39; 结果=re.findall (" # 39; \ d \数字-模拟- [a - z] {3} & # 39;, s1, re.I),#可以加第三个参数第三个参数的位置可以忽略大小写re.I这个就是忽略大小写 打印(结果),,,,,,,,,,,,,,,# (& # 39;12-a-abc& # 39; & # 39; 54-a-xYz& # 39;, & # 39; 78 - a - ytr& # 39;】 它=re.finditer (" # 39; (\ d \ d)————([a - z]{3}) & # 39;,年代,re.I) null null null null null null null null null null null null nullpython中正则表达式的分组和字符串匹配