我有这个正则:
([^(]*?)
与字符串的括号及括号中的内容匹配。我希望它仅在括号之前没有_的情况下匹配。
例如,我希望它在此示例中匹配(文本(:
这是一些随机(文本(
,但我不希望它与此示例中的任何内容匹配:
这是另一个_(text(
我将如何处理?
您可以使用负面lookbehind 为此:
(?<!_)([^(]*)
# ^ negative lookbehind
如下所示
就像@sebastianproske所说的那样,没有理由使[^(]
贪婪:因为它永远不会匹配闭合括号。所以我使它变得贪婪。
添加负面的lookbehind: (?<!_)
检查您所说的话( no _" _" (。(。
另一条言论:两个括号之间的内容应为任何序列chars,但除了关闭以外一个。
,整个正则应该是:
(?<!_)([^)]*)