簡體   English   中英

嵌套分組Python中的正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM