码迷,mamicode.com
首页 > 其他好文 > 详细

re模块

时间:2019-12-09 21:52:17      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:精确   int   sea   空白   nbsp   sre   定义   开头   换行   

^:匹配字符串的开头
$:匹配字符串的末尾。
.:匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
[...]:用来表示一组字符,单独列出:[amk] 匹配 ‘a‘,‘m‘或‘k‘
[^...] : 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。
re*: 匹配0个或多个的表达式。
re+:匹配1个或多个的表达式。 有几个匹配几个
re?: 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式 只匹配符合条件最少字符
re{ n}:精确匹配 n 个前面表达式。例如, o{2} 不能匹配 "Bob" 中的 "o",但是能匹配 "food" 中的两个 o。
re{ n,}:匹配 n 个前面表达式。例如, o{2,} 不能匹配"Bob"中的"o",但能匹配 "foooood"中的所有 o。
‘|‘:匹配|左或|右的字符,re.search(‘abc|ABC‘,‘ABCBabcCD‘).group()) 返回结果ABC
(re):对正则表达式分组并记住匹配的文本
"o{1,}" 等价于 "o+"。"o{0,}" 则等价于 "o*"。
(?imx):正则表达式包含三种可选标志:i, m, 或 x 。只影响括号中的区域。
[a-z]:匹配a-z之间任意字符 [0-9] [A-Z] 相同
[^a-z] :匹配除a-z之间的数
\d :匹配任意数字等价[0-9]
\D:匹配一个非数字 [^0-9]
\w :匹配包括下划线的任何单词字符。等价于‘[A-Za-z0-9_]‘。
\W:匹配任何非单词字符。等价于 ‘[^A-Za-z0-9_]‘。
\s:匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S:匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。

匹配三种方法:  
  
re.match(正则表达式,字符串) 从头开始匹配的
  re.search():匹配到一个就返回,匹配不到返回空
  re.findall:返回所有匹配结果,findall没有group()方法
  例子:
    print(re.match(‘[0-9]{1,3}‘,‘aaalb345d67b‘)) # None
    print(re.search(‘[0-9]{1,3}‘,‘aaalb345d67b‘)) # <_sre.SRE_Match object; span=(5, 8), match=‘345‘>
    print(re.findall(‘[0-9]{1,3}‘,‘aaalb345d67b‘)) # [‘345‘, ‘67‘]

具体每种匹配规则的实例:
  print(re.match(‘aaa?‘,‘aaalb345d67b‘)) # <_sre.SRE_Match object; span=(0, 3), match=‘aaa‘>
  
print(re.match(‘^a‘,‘aaalb345d67b‘)) #<_sre.SRE_Match object; span=(0, 1), match=‘a‘>
  print(re.search(‘b$‘,‘aaalb345d67b‘)) #<_sre.SRE_Match object; span=(11, 12), match=‘b‘>
  print(re.match(‘a.‘,‘aaalb345d67b‘)) #<_sre.SRE_Match object; span=(0, 2), match=‘aa‘>
  print(re.match(‘a*‘,‘aaalb345d67b‘)) # <_sre.SRE_Match object; span=(0, 3), match=‘aaa‘>
  print(re.match(‘a+‘,‘aaalb345d67b‘)) #<_sre.SRE_Match object; span=(0, 3), match=‘aaa‘>
  print(re.match(‘a.+‘,‘aaalb345d67b‘)) # <_sre.SRE_Match object; span=(0, 12), match=‘aaalb345d67b‘>
  print(re.match(‘a.*‘,‘aaalb345d67b‘)) # <_sre.SRE_Match object; span=(0, 12), match=‘aaalb345d67b‘>

  print(re.findall(‘a{2}‘,‘aaalb345d67b‘)) # <_sre.SRE_Match object; span=(0, 2), match=‘aa‘>
  print(re.search(‘abc|ABC‘,‘ABCBabcCD‘)) # <_sre.SRE_Match object; span=(0, 3), match=‘ABC‘>
  print(re.search(‘abc|ABC‘,‘ABCBabcCD‘).group()) # ABC
  # findall没有group()方法
  print(re.findall(‘abc|ABC‘,‘ABCBabcCD‘)) # [‘ABC‘, ‘abc‘]

 

re模块

标签:精确   int   sea   空白   nbsp   sre   定义   开头   换行   

原文地址:https://www.cnblogs.com/aiyumo/p/12013223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!