Python正则表达式组嵌套实战解析
本文深入解析Python中正则表达式的组嵌套机制,通过具体代码实例展示如何构建复杂的正则模式。详细说明了利用嵌套组匹配多重字符序列的方法,并附带完整的测试代码及输出结果分析,帮助开发者掌握高级正则技巧。
Python中正则表达式组嵌套的使用实例详解
因为组本身构成一个完整的正则表达式,所以支持将组进行嵌套,从而构建更为复杂的匹配模式。以下示例展示了组嵌套的具体应用方式:
#python 3.6
#蔡军生
#http://blog.csdn.net/caimouse/article/details/51749579
#
import re
def test_patterns(text, patterns):
"""Given source text and a list of patterns, look for
matches for each pattern within the text and print
them to stdout.
"""
# Look for each pattern in the text and print the results
for pattern, desc in patterns:
print('{!r} ({})\n'.format(pattern, desc))
print(' {!r}'.format(text))
for match in re.finditer(pattern, text):
s = match.start()
e = match.end()
prefix = ' ' * (s)
print(
' {}{!r}{} '.format(prefix,
text[s:e],
' ' * (len(text) - e)),
end=' ',
)
print(match.groups())
if match.groupdict():
print('{}{}'.format(
' ' * (len(text) - s),
match.groupdict()),
)
print()
return
具体示例如下:
#python 3.6 #蔡军生 #http://blog.csdn.net/caimouse/article/details/51749579 # from re_test_patterns_groups import test_patterns test_patterns( 'abbaabbba', [(r'a((a*)(b*))', 'a followed by 0-n a and 0-n b')], )
运行后的输出结果如下所示:
'a((a*)(b*))' (a followed by 0-n a and 0-n b)
'abbaabbba'
'abb' ('bb', '', 'bb')
'aabbb' ('abbb', 'a', 'bbb')
'a' ('', '', '')
若有任何疑问,欢迎在下方留言或前往本站社区进行交流讨论。感谢大家的阅读,希望本文能对大家有所帮助,同时也感谢各位对本站的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













