2016-07-26 132 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

它將使用啓動符合}作爲結束符較好地解決你的具體問題,但正則表達式可能不是你的問題的最佳答案。

相關問題