试图调整正则表达式删除新行

时间:2013-04-19 20:21:29

标签: php regex

您好我正在调整此正则表达式:

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

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

目前我只是将其作为替换:

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

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

2 个答案:

答案 0 :(得分:0)

想出一个简单的方法:

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

在文本中检查之前删除它们。简单的解决方案,没有大惊小怪。

答案 1 :(得分:0)

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

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

或简单的角色类:

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

也可以抓住单独的\n休息。