正则表达式排除指定问号字符失效,如何正确匹配目标括号内容?
解决方案
你可以使用零宽负向先行断言实现需求,该断言不会消耗匹配字符,既不会额外匹配尾部空格,也能精准排除右括号后紧跟问号的场景。
正确正则规则:\((.*?)\)(?!\?)
规则说明
\(:匹配左括号(.*?):非贪婪匹配括号内的任意内容\):匹配右括号(?!\?):零宽负向先行断言,仅当右括号后紧跟的字符不是问号时匹配成功,且不会占用任何字符位置,因此不会将右括号后的空格纳入匹配结果
该规则可以完全命中第一行的括号内容(仅包含括号及内部内容,无尾部空格),同时第二行右括号后带问号的场景会被直接排除。
内容的提问来源于stack exchange,提问作者Hasen
相关产品推荐
相关产品推荐

