0

嗨,我正在寻找调整这个正则表达式:

/\[quote\](.+?)\[\/quote\]\r\n/is

基本上忽略新行(基本上我希望我的报价系统删除报价 bbcode 之后的任何新行,以停止在报价后出现双空格。

目前我只是这样做作为替换:

$replace = "<div class=\"quote\"><span class=\"strong\">Quote</span><br />$1</div>";

所以它直接删除了新行,但是如果引用代码是页面上的最后一件事并且之后没有新行,它会中断。

4

2 回答 2

0

在最后添加一个非捕获组,如下所示:

/\[quote\](.+?)\[\/quote\](?:\r\n)*/is

或者一个简单的字符类:

/\[quote\](.+?)\[\/quote\][\r\n]*/is

这也会抓住孤独的\n休息时间。

于 2013-04-19T20:54:39.450 回答
0

想出了一个简单的方法:

$body = str_replace("[/quote]\r\n", '[/quote]', $body);

只需在检查文本之前将其删除。简单的解决方案,没有大惊小怪。

于 2013-04-19T20:35:17.193 回答