python中re模块_python中re模块的使用以及一些正则表达式的总结
一、re模塊的使用-常用方法
match(pattern, string, flags = 0) 從string的第一個(gè)字符來(lái)匹配。如果匹配成功,返回匹配對(duì)象,否則返回None,匹配結(jié)果可以用group方法獲取
importre
c= re.match('[0-9]+[a-z]+', 'a99aaa')print(c.group(0))
結(jié)果:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
in ()
1 import re
2 c = re.match('[0-9]+[a-z]+', 'a99aaa')
----> 3 print(c.group(0))
AttributeError: 'NoneType' object has no attribute 'group'
importre
c= re.match('[0-9]+[a-z]+', '99aaa')print(c.group(0))
結(jié)果:
99aaa
search(pattern, string ,flags = 0) 匹配字符串中第一次出現(xiàn)的符合正則的子串,沒(méi)有從第一個(gè)字符匹配的限制。如果匹配成功,則返回匹配對(duì)象,否則返回None
importre
c= re.search('[0-9]+[a-z]+', 'aa99aaa')print(c.group(0))
結(jié)果:
99aaa
findall(pattern, string[,flags] ) 查找字符串中所有(非重復(fù))出現(xiàn)的正則表達(dá)式模式,并返回一個(gè)匹配列表
importre
c= re.findall('[0-9]+[a-z]+', 'aa99aaa88bb77cc')print(c)
結(jié)果:
['99aaa', '88bb', '77cc']
finditer(pattern, string[,flags] ) 與findall()相同,但返回的是一個(gè)迭代器。對(duì)于每一次成功匹配,迭代器都會(huì)返回一個(gè)匹配對(duì)象
importre
c= re.finditer('[0-9]+[a-z]+', 'aa99aaa88bb77cc')for i inc:print(i.group(0))
結(jié)果:
99aaa
88bb
77cc
split(pattern, string, max = 0) 根據(jù)正則表達(dá)式的模式分隔符,split函數(shù)將字符串分割為列表,返回匹配列表,分割最多操作max次
importre
c= re.split('[0-9]+', 'aa99aaa88bb77cc', 2)print(c)
結(jié)果:
['aa', 'aaa', 'bb77cc']
compile(pattern) 生成一個(gè)規(guī)則模式,返回一個(gè)正則表達(dá)式對(duì)象
importre
c= re.compile('[0-9]+[a-z]+')
r= re.findall(c, 'aa99aaa88bb')print(r)
結(jié)果:
['99aaa', '88bb']
以上方法中的flags參數(shù)為匹配模式,如下:
1).re.I(re.IGNORECASE): 忽略大小寫2).re.M(MULTILINE): 多行模式,改變’^’和’$’的行為3).re.S(DOTALL): 點(diǎn)任意匹配模式,改變’.’的行為,使其可以匹配'\n'
4).re.L(LOCALE): 使預(yù)定字符類 \w \W \b \B \s \S 取決于當(dāng)前區(qū)域設(shè)定5).re.U(UNICODE): 使預(yù)定字符類 \w \W \b \B \s \S \d \D 取決于unicode定義的字符屬性6).re.X(VERBOSE): 詳細(xì)模式。這個(gè)模式下正則表達(dá)式可以是多行,忽略空白字符,并可以加入注釋
二、常用正則
ip: (?:[0-9]{1,3}\.){3}[0-9]{1,3}
郵箱: [a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+
手機(jī)號(hào):1[0-9]{10}
總結(jié)
以上是生活随笔為你收集整理的python中re模块_python中re模块的使用以及一些正则表达式的总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 把程序显示在最前面 delphi_地球程
- 下一篇: educoder 使用线程锁(lock)