是否有正则表达式可以捕获除一个字符以外的所有字符?例如,大括号中的每个字符,直到找到大括号为止,然后将其不匹配。例如catch:
{lorem ipsuem}
但不是:
{lorem ipsum {lorem}
因为里面还有另一个{
我尝试了不同的解决方案,例如:
\{[^\}].+?(?=)\} or \s\{[^\}].+?\s(?!\{)\}
取决于您的正则表达式风格,但是类似\{[^{]*\}\
的方法应该可以解决问题。
在您的示例中,它与{lorem ipsuem}
&{lorem}
。
不过您是否需要使用正则表达式?如果您确保大括号保持平衡,那么使用堆栈似乎是一个完美的案例。