【发布时间】:2015-11-05 05:43:55
【问题描述】:
我目前正在尝试制作一个正则表达式来匹配最接近的一对左括号和右括号,而不匹配转义大括号。 (并且在非转义括号前没有匹配双转义字符)。
{"asd"} - {"asd"}
\{"test"} - No match
\\{"Apple juice}"} - {"Apple juice}"}
{{"Test"}} - {"Test"}
我已经很高兴找到一个不使用\K只处理未转义字符的正则表达式@我尝试了多种方法,但我无法弄清楚为什么这个正则表达式不起作用:((?<!\\)(?=(?:\\{2})*)){
【问题讨论】:
-
你想用什么语言来做这个?是要换吗?
-
4 行中的哪一行被认为是匹配的?另外,您使用的是什么正则表达式引擎?
-
既然你提到
\K- 它是PCRE吗?您是否还想忽略引号内的大括号?看看(?<!\\)\\[{}]|(\{(?:"[^"\\]*(?:\\.[^"\\\n]*)*"|[^{}\n]*)(?:\\.(?:"[^"\\]*(?:\\.[^"\\]*)*"|[^{}\n]*))*})。 -
给我留下了深刻的印象 :D 它就像一个魅力