大家好,我有一个非常简单的bbcode解析系统,目前在处理列表嵌套时遇到了问题。
我的代码如下:
$find = array(
'/\[list\](.*?)\[\/list\]/is',
'/\[\*\](.*?)(\n|\r\n?)/is',
'/\[ul\](.*?)\[\/ul\]/is',
'/\[li\](.*?)\[\/li\]/is'
);
$replace = array(
'<ul>$1</ul>',
'<li>$1</li>',
'<ul>$1</ul>',
'<li>$1</li>'
);
$body = preg_replace($find, $replace, $body);
问题在于当您在li标签内部有另一个列表时,它就无法完全解析。屏幕截图显示:
(.*?)
匹配。 - hjpotter92(?R)
。否则,如果可能的话,为什么不只是用<ul> <li>
替换所有的[ul] [li]
? - HamZa