设为首页 收藏本站
查看: 722|回复: 0

[经验分享] Python re-90SirDB

[复制链接]

尚未签到

发表于 2018-8-9 11:30:13 | 显示全部楼层 |阅读模式
  re模块
  常用正则表达式符号
  '.'  默认匹配除\n之外的任意一个字符,若指定flagDOTALL,则匹配任意字符,包括换行
  '^'匹配字符开头,若指定flagsMULTILINE,这种也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE)
  '$' 匹配字符结尾,或e.search("foo$","bfoo\nsdfsf",flags=re.MULTILINE).group()也可以
  '*' 匹配*号前的字符0次或多次,re.findall("ab*","cabb3abcbbac")  结果为['abb', 'ab', 'a']
  '+' 匹配前一个字符1次或多次,re.findall("ab+","ab+cd+abb+bba")结果['ab', 'abb']
  '?' 匹配前一个字符1次或0次
  '{m}' 匹配前一个字符m次
  '{n,m}' 匹配前一个字符n到m次,re.findall("ab{1,3}","abbabc abbcbbb") 结果'abb', 'ab', 'abb']
  '|' 匹配|左或|右的字符,re.search("abc|ABC","ABCBabcCD").group()结果'ABC'
  '(...)' 分组匹配,re.search("(abc){2}a(123|456)c","abcabca456c").group() 结果 abcabca456c
  '\A' 只从字符开头匹配,re.search("\Aabc","alexabc")是匹配不到的
  '\Z' 匹配字符结尾,同$
  '\d' 匹配数字0-9
  '\D' 匹配非数字
  '\w' 匹配[A-Za-z0-9]
  '\W' 匹配非[A-Za-z0-9]
  's'  匹配空白字符、\t、\n、\r , re.search("\s+","ab\tc1\n3").group() 结果 '\t'
  '(?P<name>...)'分组匹配re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{4})","371481199306143242").groupdict("city")结果{'province': '3714', 'city': '81', 'birthday': '1993'}
  注意:语法就是?P<name>
  最常用的匹配语法
  re.match 从头开始匹配
  re.search 匹配包含
  re.findall 把所有匹配到的字符放到以列表中的元素返回
  re.splitall 以匹配到的字符当做列表分隔符
  re.sub  匹配字符并替换
  反斜杠的困扰
  与大多数编程语言相同,正则表达式里使用"\"作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r"\\"表示。同样,匹配一个数字的"\\d"可以写成r"\d"。有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。
  几个匹配模式
  re.I(re.IGNORECASE): 忽略大小写(括号内是完整写法,下同)
  M(MULTILINE): 多行模式,改变'^'和'$'的行为(参见上图)
  S(DOTALL): 点任意匹配模式,改变'.'的行为
  From:oldboy_alex

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-549107-1-1.html 上篇帖子: Python3安装BeautifulSoup 下篇帖子: python的logging模块详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表