text:
text1 = 'xx(aa)(bb)xx'/span>
text2 = 'xx(aa(bb))xx'
期望值:
('aa'/span>, 'bb'/span>)
('aa(bb)', 'bb')
我的方法,但它沒有達到預期。
我的方法,但它沒有達到預期。
re.compile(r'(s?(. ?)s?)')
uj5u.com熱心網友回復:
你可以安裝PyPi regex模塊并使用
import regex
texts = ['xx(aa)(bb)xx', 'xx(aa(bb))xx']
rx = r'(((?:[^()] |(?R))*)')
for text in texts:
print(regex.findall(rx, text, overlapped=True)
參見Python演示。輸出:
['aa'/span>, 'bb'/span>]
['aa(bb)'/span>, 'bb']
(((?:[^()] |(?R))*)重碼是一個常見的符合PCRE的重碼,它匹配嵌套的成對小括號之間的字串,我為小括號之間的內容添加了一個捕獲組。
為了獲得所有重疊的小括號,overlapped=True選項被傳遞給regex.findall。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/307545.html
標籤:
上一篇:用HTML替換文本的Regex
