簡體   English   中英

Python正則表達式提取括號

[英]Python regular expression to extract the parenthesis

我有以下繁瑣的代碼從字符串“ ABC(XYZ)”中提取“ ABC”和“(XYZ)”

import re

test_str = 'ABC(XYZ)'
partone = re.sub(r'\([^)]*\)', '', test_str)
parttwo_temp = re.match('.*\((.+)\)', test_str)
parttwo = '(' + parttwo_temp.group(1) + ')'

我想知道是否有人可以想到更好的正則表達式來拆分字符串。 謝謝。

您可以使用re.findall

>>> import re
>>> test_str = 'ABC(XYZ)'
>>> re.findall(r'\([^()]*\)|[^()]+', test_str)
['ABC', '(XYZ)']
>>> [i for i in re.findall(r'(.*)(\([^()]*\))', test_str)[0]]
['ABC', '(XYZ)']
[i for i in re.split(r'(.*?)(\(.*?\))', test_str) if i]

對於這種輸入數據,我們可以將(替換為space + (並按空格分隔:

>>> s = 'ABC(XYZ)'
>>> s.replace("(", " (").split()
['ABC', '(XYZ)']

這樣,我們在每個括號前都人為地創建了一個定界符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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