我想構建一個bbcode解析器,但我在解決如何避免匹配過於廣泛時遇到了一些問題。例如,我想實現一個[名單]來轉換這樣的:正則表達式的字符串分隔
\[list\](.*)\[/list\]
將通過這個來代替:
<ul>$1</ul>
這工作正常,但如果我有兩個列表正則表達式匹配哪裏第一個列表的開始標記和第二個列表的結束標記。因此,這
[list]list1[/list] [list]list2[/list]
變成這樣:
<ul>list1[/list] [list]list2</ul>
產生真難看輸出。任何想法如何解決這個問題?
更好地構建一個真正的解析器比這個正則表達式僞解析器。至少當你需要嵌套列表時,你會看到正則表達式不是每個問題的答案。 – Gumbo 2009-02-22 22:32:25