我想寫一個正則表達式來匹配滿足以下條件的任何字符串。使用正則表達式匹配Paiousheses
字符串開始和結束匹配對括號「(」「)」
可以有任何數量的在其內的括號。
例如我正則表達式shud匹配:
((P(X)+ Q(X))(P(X)* Q(X))。)
但不匹配
( p(x)+ q(x))。 ( P(X)* Q(x)的)
我怎樣寫這樣的正則表達式
我想寫一個正則表達式來匹配滿足以下條件的任何字符串。使用正則表達式匹配Paiousheses
字符串開始和結束匹配對括號「(」「)」
可以有任何數量的在其內的括號。
例如我正則表達式shud匹配:
((P(X)+ Q(X))(P(X)* Q(X))。)
但不匹配
( p(x)+ q(x))。 ( P(X)* Q(x)的)
我怎樣寫這樣的正則表達式
使用regular expressions is difficult進行任何類似的解析,幾乎總是一個壞主意。見this answer至this question。哦,恐怖!
大聲笑很好地由作者提出 – AnkurVj 2010-09-13 17:24:21
你想說所有的內部括號必須匹配嗎?如果是這樣的話,我相信你需要使用Push-Down-Automata而不是正則表達式來解決這個問題,因爲有限狀態自動機(定義正則表達式的空間)不允許這種類型的支票。 – aperkins 2010-09-13 16:11:20
澄清我的評論 - 如果你正在尋找一個正則表達式來解決[n] b [n],你有一個相同數量的 – aperkins 2010-09-13 16:11:52
dangit - 愚蠢的回車鍵 - 繼續:a和b的數量相等,那麼你將無法用正則表達式來解決這個一般情況。根據你所描述的內容,看起來這就是你正在尋找的東西(當然是在一個變體中),這需要一臺PDA。 – aperkins 2010-09-13 16:12:49