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

时间:2016-07-26 14:09:18

标签: javascript regex curly-braces

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

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

output {
      stdout { }
}

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

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

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

我需要它用于javascript。

也许用正则表达式无法实现?

欢迎提示。

tmoe

1 个答案:

答案 0 :(得分:0)

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

基于你的正则表达式,我可以想出一些改变并使用这个:

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

<强> Working demo

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