我想匹配除捕获组中的字符之外的所有字符。这是一个最小的正则表达式,作为我想要实现的目标的示例:
/(?:(["'])[^\1]*\1)/g
明显的问题是
[^\1]
不是这样工作的,它没有使用捕获组。我找不到实现该行为的方法。
我认为你真正需要的是一个“非贪婪”运算符,例如
.*?
(另外,为什么需要外部非捕获括号?)
尝试:
/(["']).*?\1/g
您正在寻找的称为负前瞻。它用于断言某个字符序列不跟随其他字符。在这里:
/(?:(["'])(?!\1*).*?\1)/g