用于在包含多个内部花括号的外部花括号中获取字符串的正则表达式

Regex for getting string in outer curly braces containing multiple inner curly braces

我需要找到正则表达式以在花括号中给我一个字符串,其中该字符串还包含花括号。这是字符串就像

input{
    stdin {
     type => "stdin-type"
       }
    file {
     type => "file"
      }
}

output {
      stdout { }
}

我想要的只是输入部分。我最近的尝试是:

input{([\s\S]*)\n}

当只有一对内部花括号和最后一个花括号之前的换行符时,这是可行的,但情况可能并非总是如此。并且可能有更多带有花括号的内部元素。所以我需要更灵活的东西。有开放式柜台或类似的东西。

我需要 javascript。

也许它不能用正则表达式制作??

欢迎提出想法。

tmoe

在正则表达式中使用逻辑来匹配嵌套模式可能会让您陷入噩梦,而正则表达式可能不是解决此问题的正确工具。

根据你的正则表达式,我可以想出一些变化并使用这个:

input{([\s\S]*?)^}

Working demo

它将使用带有 } 的起始行作为结束分隔符,这可以解决您的特定问题,但是正则表达式可能不是您问题的最佳答案。