re模块

正则表达式

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

.    匹配除换行符“\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’}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容