re模块

作者: 狗狗胖妞 | 来源:发表于2017-04-13 20:28 被阅读16次

正则表达式

预定义字符集(可以写在字符集[…]中)

.    匹配除换行符“\n”外任意单个字符

\w 单词字符:[A-Za-z0-9]

\W 非单词字符:[^\w]

\s 空白符:[<空格>\t\r\n\f\v]

\S 非空白符[^\s]

\d 匹配数字:[0-9]

^开头$结尾

数量匹配:

*   匹配前一个字符0次或无限次

+    匹配前一个字符一次或无限次

?    匹配前一个字符0次或一次

{m}  匹配前一个字符m次(abc{m},(abc){m})

{m,n}  匹配前一个字符m至n次

[a-zA-Z ]    匹配范围([^a-z] 取反)

#所有的特殊字符在字符集中都失去其原有的特殊含义

*? +? ?? {m,n}?  使* + ? {m,n}变为非贪婪模式

名称捕获(?P<name>…)

re模块的相关方法:

re.match(p,text)  只匹配开头的位置,返回一个match对象

re.search(p,text)  匹配到了p就返回,只返回第一个匹配到的

re.findall(p,text)  将匹配到的全返回,返回一个list

re.split(p,text)  以匹配到的字符为分隔符切割text,返回一个list

re.sub(p,s,text)  替换,将p匹配到的字符串替换为s

>>import re

>>text=”c++ python2 python3 perl ruby lua java php5 php7”

>>a=re.match(r’c\+\+’,text)  #返回一个match对象(匹配c++)

>>a.group()

>>c++

>>a=re.match(r’java’,text)  #必须从头匹配

>>a.group()

>>print a

>>None

>>a=re.findall(r’python’,text)

>>a

>>[‘python’,’python’]    #返回一个列表

>>li=re.split(r’pe’,text)

>>li

>>[‘c++ python2 python3’,’rl ruby lua java php5 php7’]

>>text=”c++ python2 python3 perl ruby lua java php5 php7c++peeeo text hph”

>>re.findall(r’p[^0-9]*?’,text)  #非贪婪模式

[‘p’,’p’,’p’,’p’,’p’,’p’,’p’,’p’,’p’]

命名分组

>> text=”c++ python2 python3 perl ruby lua java php5 php7c++peeeo text hph”

>>a=re.findall(r’(p[a-zA-Z]+) (0-9)’,text)  #位置分组

>>a

>>[(‘python’,’2’),(‘python’,’3’),(‘php’,’5’),(‘php’,’7’)]

>>a=re.search(r’(?P<name>p[a-zA-Z]+) (?P<version>[0-9])’,text) #返回match对象

>>a.group()

python2

>>a.groupdict()

{‘name’:’python’,’version’:’2’}

编译模式

pattern=re.compile(p)先编译p模式,当正则表达式比较复杂的时候,会先编译,然后使用result=patter.match(text),就可以使用编译好的模式去匹配各种字符串了,性能会有所提升。

>>p=re.compile(r’(?P<name>p[a-zA-Z]+) (?P<version>[0-9])’)

>>a=p.search(“python333333”)

>>a.groupdict()

>>{‘name’:’python’,’version’:’3’}

相关文章

  • 21.Python之re模块

    Python之re模块 re模块介绍re 模块使 Python 语言拥有全部的正则表达式功能。 re模块的内置方法...

  • python(学会正则走天下)

    python通过re模块来实现。本篇文章着重对Python的RE进行介绍re 模块首先通过 re.compiler...

  • Python 脚本之统计基因组文件中染色体长度及N碱基数目

    模块介绍 re模块 re模块是Python中的正则表达式调用模块,在python中,通过将正则表达式内嵌集成re模...

  • 遇见正则表达式(2)

    昨天我已经埋好了伏笔,今天来重点学习re模块。 学习re模块,主要是学习该模块的几个重要的方法。 re.finda...

  • 小猪的Python学习之旅 —— 3.正则表达式

    re模块 Python中通过re模块使用正则表达式,该模块提供的几个常用方法: 1.匹配 re.match(pat...

  • python05-正则表达式(二)

    正则表达式(二) re模块(regex) python中没有正则表达式的函数,需要引入内置的re模块 re模块方法...

  • re模块

    匹配标签 匹配整数 数字匹配 爬虫练习

  • re模块

    参考资料https://www.ibm.com/developerworks/cn/opensource/os-c...

  • re 模块

    1、Python中的模块有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include...

  • re模块

    1、re.match函数 原型:match(pattern, string, flags=0) 参数:patter...

网友评论

      本文标题:re模块

      本文链接:https://www.haomeiwen.com/subject/pskiattx.html