Python正则表达式:捕获嵌套括号内的所有单词

时间:2019-11-16 08:37:55

标签: python regex python-3.x

我正在尝试使用正则表达式提取嵌套括号内的所有单词。这是我的.txt文件的示例:

hello ((

(alpha123_4rf)
45beta_Frank))
Red5Great_Sam_Fun

我已经用正则表达式尝试过此操作:

r'[\((?\(??(^\()?\))]'

,但无法获得所需的输出。我希望我的输出像这样:

((

(alpha123_4rf)
 45beta_Frank))

我在做什么错?任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

尝试此模式.

说明:

\(-标志:单行模式-(也匹配换行符

[^(]*-从字面上匹配(

\(-匹配零个或多个(以外的字符

(.+)-从字面上匹配\)

)-匹配任何字符中的一个或mroe并将其存储在第一个捕获组中

[^)]*-从字面上匹配)

\)-匹配零个或多个)以外的字符

PYTHONPATH-从字面上匹配python -version

Demo

答案 1 :(得分:1)

如果这些双环环环相扣,那么这个更简单的解决方案也可以做到:

def find_brackets(text):
    rx = "(?s)\(\((.+)\)\)"
    z = re.search(rx,text)
    if z: 
        return  z[0] 
    else: 
        return ''