Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Python之re操作实例教程

Python之re操作实例教程

PHP中文网
PHP中文网asal
2017-06-21 16:47:541917semak imbas

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')]

 

Atas ialah kandungan terperinci Python之re操作实例教程. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn