0

我正在为我的网站构建一种 BBCode,我目前有以下代码:

$bbcode = array(
        ...
        '#\[ul\](.*?)\[/ul\]#is' => '<ul>$1</ul>',
        '#\[li\](.*?)\[/li\]#is' => '<li>$1</li>'
    );

我的问题是,在<li>它添加之后,它<br />在列表项之间创建了很多空白空间。

是否有一些我可以在[li]正则表达式中添加的代码,可以忽略/删除<br />之后添加的代码?

4

2 回答 2

0

你能分两步来做吗(先用 br 改变,然后不用):

'#\[li\](.*?)(?:<br />)(.*?)\[/li\]#is' => '<li>$1$2</li>'
'#\[li\](.*?)\[/li\]#is' => '<li>$1</li>'

或者如果 br 总是在 li 之后,没有别的:

'#\[li\](?:\s*<br />)?(.*?)\[/li\]#is' => '<li>$1</li>'
于 2013-10-03T21:01:50.780 回答
0

Try this

$bbcode = array(
    ...
    '#\[li\]\s+(.*?)\[/li\]#is' => '<li>$1</li>'
);
于 2013-10-03T20:03:47.840 回答