[英]Nested grouping Regular Expression in Python
如果我有幾個不同的正則表達式,我想做這樣的嵌套正則表達式
r1 = re.compile(r'SO ON')
r2 = re.compile(r'WHATEVER AND (%s)*' % r1.pattern)
r3 = re.compile(r'WHATEVER AND (%s) (%s)' % (r1.pattern, 'r2.pattern'))
現在r3正常工作。 但是,如果我想做這樣的事情呢?
r4 = re.compile(r'(r1)(r2)(r1)(r2)(r2)' % (r1.pattern, 'r2.'pattern'))
##NOT VALID CODE, JUST FOR EXPLANATION
我提醒使用群組捕捉,但它們只匹配完全相同的東西,從匹配的第一組,而不是模式。 謝謝
你使用引號我有點困惑,但你似乎在詢問字符串格式。 您可以嘗試格式化正則表達式字符串,如下所示:
>>> r'({r1})({r2})({r1})({r2})({r2})'.format(r1=r1.pattern, r2=r2.pattern)
'(SO ON)(WHATEVER AND (SO ON)*)(SO ON)(WHATEVER AND (SO ON)*)(WHATEVER AND (SO ON)*)'
所以在你的場景中,你可以嘗試這樣的正則表達式:
r4 = re.compile(r'({r1})({r2})({r1})({r2})({r2})'.format(r1=r1.pattern, r2=r2.pattern))
但是,如果可能的話,你應該嘗試找到更簡潔的方法來形成這個正則表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.