首頁  >  文章  >  後端開發  >  Python之re操作實例教程

Python之re操作實例教程

PHP中文网
PHP中文网原創
2017-06-21 16:47:541921瀏覽

1.re.search():search返回的是查找結果的物件(依序找到第一個成功匹配的結果後就不往後查找了,沒有查找到返回None),可以使用group()或groups()方法得到符合成功的字串。

  ①group()預設傳回符合成功的整個字串(忽略pattern中的括號),也可以指定在傳回符合成功的括號中第幾個字串(從1開始計數);

  ②groups()以元組的形式傳回符合成功的pattern中括號中的內容,若pattern中沒有括號,則傳回成功符合的字串對應的空元組。

 1 >>> string = 'python' 2 >>> import re 3 >>> result = re.search(r'(yt)h(o)', string) 4 >>> result 5 <_sre.SRE_Match object at 0x000000000293DE88> 6 >>> result.group() 7 'ytho' 8 >>> result.group(0)  # 参数0无效 9 'ytho'10 >>> result.group(1)  # 从1开始计数11 'yt'12 >>> result.group(2)13 'o'14 >>> result.groups()15 ('yt', 'o')16 >>> result.groups(0)  # 传入参数无效17 ('yt', 'o')18 >>> result.groups(1)19 ('yt', 'o')20 >>>

 2. re.finditer():傳回全部查找結果的迭代器(若沒有符合成功的字串,則傳回一個空的迭代器),每個迭代對象同樣可以使用group()和groups()來取得成功配對的結果。

 1 >>> string = 'one11python, two22, three33python ' 2 >>> result = re.finditer(r'(\d+)(python)', string) 3 >>> for p in result: 4     print(p.group()) 5  6      7 11python 8 33python 9 >>> for p in result:10     print(p.group(2))11 12     13 python14 python15 >>> for p in result:16         print(p.groups())  # 若是pattern中没有括号,则返回的是每个迭代器对应的空元组。17 18     19 ('11', 'python')20 ('33', 'python')

3. re.findall():以列表的形式傳回查找到的全部字串(若沒有查找到能成功匹配的字串,則傳回空的列表) 。

1 >>> string = 'one11python, two22, three33python '2 >>> result = re.findall(r'\d+python', string)3 >>> result4 ['11python', '33python']5 >>> result = re.findall(r'(\d+)(python)', string)6 >>> result7 [('11', 'python'), ('33', 'python')]

 

以上是Python之re操作實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn