python中正则表达式的分组和字符串匹配

  

这篇文章主要为大家分享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
  null

python中正则表达式的分组和字符串匹配