c# - 正则表达式:匹配表达式周围最接近的开闭花括号内的所有内容

标签 c# .net regex

有点难以解释我真正想要的东西(欢迎提供更好的标题建议,以便人们将来可以轻松找到它)。

假设我有这个:

{
    {
        $myTagThing$
    }
}

我要匹配

{
    $myTagThing$
} 

即匹配最后一个 { 的所有内容之前$myTagThing$直到第一个}$myTagThing$ 之后.

所以我想我需要这个 \{.*\$myTagThing\$.*\} , 但它也会匹配第一个 {最后}在字符串中(即整个示例)。然后我尝试使用前瞻和后视(均为负数)\{(.*(?!\{))\$myTagThing\$.*(?<!\})\} (https://regex101.com/r/RfdHUH/1/)。但这仍然不起作用。

我的理论是我可能以错误的方式使用前瞻和后视,因为这是我第一次使用它们。

有什么想法吗?

编辑: 标志是 \gms .

最佳答案

注意 这已被投票 3 次并标记为 revision 2 的已接受答案这个问题,在问题被更改为不同的场景之前,这个答案是不被接受的。

您需要查找:左大括号,然后是不是左大括号或右大括号的字符序列,然后是右大括号。

具体来说:{[^{}]*}

关于c# - 正则表达式:匹配表达式周围最接近的开闭花括号内的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52436040/

相关文章:

c# - 我如何聚焦外国窗口?

c# - Razor 语法突出显示在带有 MVC 5 的 VS 2012 中不起作用

.net - WCF 服务的自定义序列化转换器

c# - 适用于 Citrix 的 SendKeys 替代方案

html - 删除 &lt;title&gt; 标签内的引​​号

MySQL - 不包括下划线(连接器标点符号)的单词边界的正则表达式

c# - Css 每行显示 3 个 foreach 结果

C#文件夹浏览器对话框问题

javascript按空格分割字符串,但忽略引号中的空格(注意不要也用冒号分割)

java - 如何匹配另一个文本中间的模式?