2016-11-06 39 views
-1

我有一個字符串: 例(123)(例(123)正則表達式來獲得括號中最後一次出現在內容最外側水平

我試圖讓以粗體顯示的字符串。目前,我有這樣的正則表達式: (?。?< =()+(=))

正則表達式工作的大部分時間來獲得括號中的文字,而不是當有不止一個出現嵌套括號。

請告訴我該如何解決這個問題。

謝謝!

+0

我需要一個正則表達式,這將讓我的值以粗體顯示: 的Hello World(* * Hello World(123)**) Hello World(** Hello World **) –

+0

This i不要用正則表達式來完成,而應該用簡單的編程邏輯來完成...... –

回答

0

你需要遞歸正則表達式才能正確匹配。這一個會工作:

\(\w+\s*(?R)*[^()]*\) 

regex101 test

問題:

  • 只需1模式匹配,你總是會得到外括號。
  • 它不固定在字符串的末尾。我只是不知道我該如何實現它。所以你需要抓住最後一場比賽。
0

試試這個:

\([a-zA-Z\s]+\s\([0-9]+\) 

更新代碼:

\([\w\s]*\(*[\w\s]*[()]*[\w\s]*\)\) 

測試here

+0

這適用於上述示例,但不適用於所有情況。 我想要一個正則表達式,它返回最後一組外部括號中的值,例如,如果我有「any_string_abc(any)(** any_string(whatever)(whatever123)**)」,我想獲得「any_string(無論)(whatever123)」 –

+0

@Dhinnesh讓我知道它是否與你合作。 – Ibrahim

相關問題