由于组本身是一个完整的正则表达式,所以可以将组嵌套在其他组中,以构建更复杂的表达式。下面的例子,就是进行组嵌套的例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#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 |
例子:
1
2
3
4
5
6
7
8
9
10
|
#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' )], ) |
结果输出如下:
1
2
3
4
5
6
7
|
'a((a*)(b*))' (a followed by 0 - n a and 0 - n b) 'abbaabbba' 'abb' ( 'bb' , ' ', ' bb') 'aabbb' ( 'abbb' , 'a' , 'bbb' ) 'a' (' ', ' ', ' ') |
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:http://blog.csdn.net/caimouse/article/details/78321534