PHP Regex获取BBCode标记之间的文本


PHP Regex Get Text Between BBCode Tags

我需要以下方面的PHP代码帮助:

获取给定字符串中BBCode标记[code]和[/code]每次出现之间的文本,这样我就可以用nbsp字符替换空格"。

长话短说,我不能用CSS或DOM来做这件事,我需要在服务器上做。

#[code](.*?)[/code]#似乎只有在开始和结束标记之间没有换行符(或换行符)时才有效…:(

我想你正在搜索类似于这个的东西

<?php
preg_match_all("/'[code'](.*?)'['/code']/ism", $search, $match);

悬停,我建议你使用BBcode解析器而不是


要用&nbsp;替换所有空间,只需使用preg_replace_callback

<?php
$text = preg_replace_callback("/'[code'](.*?)'['/code']/ism", function($match) {
     return str_replace(" ", "&nbsp;", $match[1]);
}, $search);