我终于设法找到了解决方法,请参见https://regex101.com/r/Zls9Kq/5/
(?!\\)[{](.|\n)*?(?<!\\)[}]
尝试匹配
sometext {
blah \{
\}
\{
\}
}
但是该表达式不能在flex中使用。
任何人都知道是否可以通过flex进行转换吗?
答案 0 :(得分:1)
我将假定使用一个有限的正则表达式引擎,并尝试一下
([^\\]|^)[{]([^\\}]|\\(.|\n))*[}]
https://regex101.com/r/WBFbWw/1
**
( [^\\] | ^ ) # (1), Before the opening {, match not an escape or the beginning of the string
[{] # Opening brace
( # (2 start)
[^\\}] # Not an escape nor a closing brace
| \\ # Or, an escape anything
( . | \n ) # (3)
)* # (2 end), 0 to many times
[}] # Closing brace