有点难以解释我真正想要的东西(欢迎提供更好的标题建议,以便人们将来可以轻松找到它)。
假设我有这个:
{
{
$myTagThing$
}
}
我要匹配
{
$myTagThing$
}
即匹配最后一个 {
的所有内容之前$myTagThing$
直到第一个}
在 $myTagThing$
之后.
所以我想我需要这个 \{.*\$myTagThing\$.*\}
, 但它也会匹配第一个 {
最后}
在字符串中(即整个示例)。然后我尝试使用前瞻和后视(均为负数)\{(.*(?!\{))\$myTagThing\$.*(?<!\})\}
(https://regex101.com/r/RfdHUH/1/)。但这仍然不起作用。
我的理论是我可能以错误的方式使用前瞻和后视,因为这是我第一次使用它们。
有什么想法吗?
编辑: 标志是 \gms
.
最佳答案
注意 这已被投票 3 次并标记为 revision 2 的已接受答案这个问题,在问题被更改为不同的场景之前,这个答案是不被接受的。
您需要查找:左大括号,然后是不是左大括号或右大括号的字符序列,然后是右大括号。
具体来说:{[^{}]*}
关于c# - 正则表达式:匹配表达式周围最接近的开闭花括号内的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52436040/