繁体   English   中英

PHP Regex-在li之后删除换行

[英]PHP Regex - Remove break line after li

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

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

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

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

尝试这个

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

您能分两步来做吗(首先用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>'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM