2016-07-26 555 views
0

我需要找到正则表达式来给我一个大括号中的字符串,其中的字符串还包含大括号。这是字符串就像正则表达式为在包含多个内部大括号的外部花括号中获取字符串

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

output { 
     stdout { } 
} 

我想要的只是例如输入部分。我的最新的尝试是:

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

这工作,当只有一个内侧的一对大括号的最后大括号前一个换行符,但可能并非总是如此。花括号可能更多的内在元素。所以我需要更灵活的东西。与开放柜台或类似的东西。

而我需要它的JavaScript。

也许这是不正确的正则表达式?

想法欢迎。

tmoe

+0

你可以在网上尝试你的正则表达式:https://regex101.com/#javascript – HolyDanna

+1

匹配嵌套花括号不可能适用于JS中的所有情况。为你的输入尝试:['/input{([^]*?)\n}/'](https://regex101.com/r/nN2eB2/1) – anubhava

+0

你会告诉我们结果应该是什么给定字符串?另一方面,如果它不打扰你。 – HolyDanna

回答

0

具有正则表达式匹配嵌套的模式可能带你走进一个恶梦,正则表达式可能不是这个合适的工具逻辑。

此基础上你的正则表达式,我可以想出一些变化,并使用这一个:

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

Working demo

它将使用启动符合}作为结束符较好地解决你的具体问题,但正则表达式可能不是你的问题的最佳答案。

相关问题