2009-10-16 178 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