认证0级讲师
我想你是希望匹配任意層級的成對括號對吧。 簡單來講用regex是不可行的。
正規表示式本質上是一個有限狀態機,有限狀態機除了目前它所在的狀態之外,不會儲存其他東西。 就匹配任意層級的成對括號而言,需要任意長度的儲存(對應於層級)。寫死的正規表示式是做不到的,解決該問題的函式庫也是需要動態記憶體的。參見:http://stackoverflow.com/questions/133601/can-regular-expressions-be-used-to-match-nested-patterns
如果你的問題比較一般(general),例如任意成對標籤。最常見的例如XML或HTML,因為語法的多元和相容這在實務上會更有難度,你基本上得用一個函式庫了。參見:http://stackoverflow.com/questions/701166/can-you-provide-some-examples-of-why-it-is-hard-to-parse-xml-and-html-with-a-reg
標準庫裡的正規引擎是不支援的。這個 regex 函式庫支持,到網頁搜尋「recursive」即可找到用法。
一樓正解,用棧可以實現。
我想你是希望匹配任意層級的成對括號對吧。 簡單來講用regex是不可行的。
正規表示式本質上是一個有限狀態機,有限狀態機除了目前它所在的狀態之外,不會儲存其他東西。
就匹配任意層級的成對括號而言,需要任意長度的儲存(對應於層級)。寫死的正規表示式是做不到的,解決該問題的函式庫也是需要動態記憶體的。參見:http://stackoverflow.com/questions/133601/can-regular-expressions-be-used-to-match-nested-patterns
如果你的問題比較一般(general),例如任意成對標籤。最常見的例如XML或HTML,因為語法的多元和相容這在實務上會更有難度,你基本上得用一個函式庫了。參見:http://stackoverflow.com/questions/701166/can-you-provide-some-examples-of-why-it-is-hard-to-parse-xml-and-html-with-a-reg
標準庫裡的正規引擎是不支援的。這個 regex 函式庫支持,到網頁搜尋「recursive」即可找到用法。
一樓正解,用棧可以實現。