我有这个正则表达式:

\([^\(]*?\)


匹配字符串的括号和括号内的内容。我希望仅在括号前没有_时匹配。

例如,在此示例中,我希望它与(文本)匹配:


  这是一些随机的(文本)


但在此示例中,我不希望它与任何内容匹配:


  这是another_(text)


我将如何处理?

最佳答案

您可以为此使用负向后看:

  (?<!_)\([^\(]*\)
# ^ negative lookbehind


如该regex101所示

就像@SebastianProske所说,没有理由使[^\(]贪婪:因为它永远不会匹配右括号。所以我让它变得贪婪。

关于python - 正则表达式,如果不以下划线开头,则匹配括号及其内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44738651/

10-10 05:37
查看更多