gpt4 book ai didi

python - 查找数学表达式中最外层括号内包含的文本

转载 作者:太空宇宙 更新时间:2023-11-04 09:31:08 24 4
gpt4 key购买 nike

我正在尝试查找包含在函数 filt() 最外层括号内的文本。

该函数是数学表达式字符串的一部分:

math_expr = "filt(2*A) + filt(A*(B+C)) - filt((A+B)/(C+D))"

预期的输出是:

['2*A', 'A*(B+C)', '(A+B)/(C+D)']

我已经尝试在此站点上使用多个正则表达式,我得到的最接近的输出是使用 re.findall('\((.*?)\)', math_expr)。然而,正则表达式返回:

['2*A', 'A*(B+C', '(A+B', 'C+D']

有人可以帮帮我吗?我是正则表达式的新手,不知道还能尝试什么。谢谢!

最佳答案

如果你使用支持递归模式的正则表达式模块,你可以使用

regex.findall(r'\(((?:[^()]+|(?R))+)\)', math_expr)

输出:

['2*A', 'A*(B+C)', '(A+B)/(C+D)']

https://regex101.com/r/oclWxx/1

  • \( - 前导括号
  • ((?:[^()]+|(?R))+) - 捕获组,重复匹配:
    • [^()]+ - 除括号外的任何内容,或
    • (?R) - 整个模式,再次递归
  • \) - 尾随括号

关于python - 查找数学表达式中最外层括号内包含的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55719801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com