我需要${
和}
實例之間的匹配文本:匹配文本與支架之間可能的括號
${
我需要匹配本文}
簡單的regex \$\\{(.+?)\\}
將正常工作,直到我把一些}
文字內部
大括號在文本內部配對以匹配。
有沒有可能通過正則表達式來解決這個問題?
我需要${
和}
實例之間的匹配文本:匹配文本與支架之間可能的括號
${
我需要匹配本文}
簡單的regex \$\\{(.+?)\\}
將正常工作,直到我把一些}
文字內部
大括號在文本內部配對以匹配。
有沒有可能通過正則表達式來解決這個問題?
\$\{((?:\{[^\{\}]*\}|[^\{\}]*)*)\}
要是碰到一個開括號,我們來看看它的對,並關閉一個後我們繼續像往常一樣。這不能處理多個級別的嵌套括號。
這裏的主要構建塊在[^\{\}]*
- 任何非括號序列。它可以被支架\{[^\{\}]*\}
包圍,但它可能不是(?:\{[^\{\}]*\}|[^\{\}]*)
。任何這些序列的計數都可以存在,因此最後是*
。
任何級別的嵌套可能需要recursive regex,Java不支持。但是任何固定金額都可以通過仔細擴展這個想法來匹配。
正是!這樣可行。謝謝! – chaplean
內部}如何在輸入中被轉義? – Basilevs
沒有關於輸入的更多信息是不可能的。例如,所有內部大括號可以被轉義或成對出現{}。 – Basilevs
他們沒有逃脫,但每個{有一對} – chaplean