2009-10-16 177 views
2

我試圖創建一個正則表達式,它將捕獲BB代碼,具有額外參數的BB代碼([url=http://]url[/url])等,並且可以與嵌套BB代碼一起正常工作。正則表達式爲嵌套的BBCode

然後,我會遞歸地解析從最內層開始的BB代碼。

這是我到目前爲止,但它試圖匹配嵌套BB代碼時破壞。

模式:

\[(.*)\b=?([^=].*)?\](.*)\[/\1\] 

訪問http://www.gskinner.com/RegExr/和嘗試以下

圖案和文字試試這個:

[b]sdfsdf[/b] 

[b=extra]sdfsdf[/b] 

[b=extra]left[u]middle[/u]right[/b] 

回答

3

不能使用正則表達式進行支持嵌套解析器;你需要用狀態機來解析字符串。另外,reuse existing code

+0

爲什麼這會降低投票率? – SLaks 2010-01-05 14:09:53