Python:正则表达式re.compile()
正則表達(dá)式re.compile()
對(duì)于一些經(jīng)常要用到的正則表達(dá)式,可以使用compile進(jìn)行編譯,后期再使用的時(shí)候可以直接拿過來用,執(zhí)行效率會(huì)更快。而且compile還可以指定flag=re.VERBOSE,在寫正則表達(dá)式的時(shí)候可以做好注釋。
compile()的定義:
從compile()函數(shù)的定義中,可以看出返回的是一個(gè)匹配對(duì)象,它單獨(dú)使用就沒有任何意義,需要和findall(), search(), match()搭配使用。
compile()與findall()一起使用,返回一個(gè)列表。
compile()與match()一起使用,可返回一個(gè)class、str、tuple。但是一定需要注意match(),從位置0開始匹配,匹配不到會(huì)返回None,返回None的時(shí)候就沒有span/group屬性了,并且與group使用,返回一個(gè)單詞‘Hello’后匹配就會(huì)結(jié)束。
import redef main():content = 'Hello, I am Jerry, from Chongqing, a montain city, nice to meet you……'regex = re.compile('\w*o\w*')y = regex.match(content)print(y)print(type(y))print(y.group())print(y.span())if __name__ == '__main__':main() ''' <re.Match object; span=(0, 5), match='Hello'> <class 're.Match'> Hello (0, 5) '''compile()與search()搭配使用, 返回的類型與match()差不多, 但是不同的是search(), 可以不從位置0開始匹配。但是匹配一個(gè)單詞之后,匹配和match()一樣,匹配就會(huì)結(jié)束。
import redef main():content = 'Hello, I am Jerry, from Chongqing, a montain city, nice to meet you……'regex = re.compile('\w*o\w*')z = regex.search(content)print(z)print(type(z))print(z.group())print(z.span())if __name__ == '__main__':main() ''' <re.Match object; span=(0, 5), match='Hello'> <class 're.Match'> Hello (0, 5) '''總結(jié)
以上是生活随笔為你收集整理的Python:正则表达式re.compile()的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java常用类库(Object类、Str
- 下一篇: 彻底理解数据库ER模型(CDM)中的强实