下面的评论向我展示了代码中存在一个功能性错误。问题已经更新以匹配。
因此,我有一个正则表达式,可以找到bb风格的引用,并将它们替换为blockquote。
$text = preg_replace("/\[quote(?:=\"(\w+?)\")?]/", '<blockquote class="quote"><div class="quotee">\1 says:</div>', $text);
$text = preg_replace("/\[\/quote\]/m", '</blockquote>', $text);
它在 while 循环中能够正常工作(以获得递归引用),但随后我使用了 nl2br。然而,我不想在 blockquote 后面添加换行符,因此我想要移除模式后面的换行符,但我尝试过的一切都没有起作用。
我尝试过:
/\[\/quote\][\r\n]?/ms
/\[\/quote\][\r\n]*/ms
/\[\/quote\][\r\n]{0,2}/ms
/\[\/quote\](?:[\r\n]|\r\n)?/ms
有什么建议吗?
.*
将找到从第一个开放引号到最后一个闭合引号的所有内容。如果它对你起作用,那只是偶然。 - user557597[^\S\r\n]*[\r\n]*
。 - user557597