2024-09-28 01:27:46 发布
网友
我正在寻找一个正则表达式,用于区分包含括在圆括号之间的数值的字符串和包含圆括号之外的数值的字符串。问题是,括号可能相互嵌入:
例如,表达式应该匹配以下字符串:
但不应与以下任何一项匹配:
到目前为止我已经试过了
\d[A-Za-z] \)
像这样简单的事情。这个的问题是它与示例2不匹配,因为它后面有一个(字符串)。你知道吗
我怎么才能解决这个问题?你知道吗
问题不在于模式匹配。这意味着正则表达式不是实现这一点的合适工具。你知道吗
相反,你需要词法分析和解析。有many libraries available for that job。你知道吗
您可以尝试使用^{}或^{}库。你知道吗
这些类型的正则表达式并不总是容易的,但有时只要输入保持一定的一致性,就可以想出一种方法。通常这样的模式应该有效:
(.*(\([\d]+[^(].*\)|\(.*[^)][\d]+.*\)).*)
强代码:
import re p = re.compile(ur'(.*(\([\d]+[^(].*\)|\(.*[^)][\d]+.*\)).*)', re.MULTILINE) result = re.findall(p, searchtext) print(result)
结果:
https://regex101.com/r/aL8bB8/1
问题不在于模式匹配。这意味着正则表达式不是实现这一点的合适工具。你知道吗
相反,你需要词法分析和解析。有many libraries available for that job。你知道吗
您可以尝试使用^{} 或^{} 库。你知道吗
这些类型的正则表达式并不总是容易的,但有时只要输入保持一定的一致性,就可以想出一种方法。通常这样的模式应该有效:
强代码:
结果:
https://regex101.com/r/aL8bB8/1
相关问题 更多 >
编程相关推荐