如何从字符串中删除BB代码?

Rya*_*yan 4 php bbcode

如何在字符串中获取所有BBcodes但保留内容?

例:

[B]This is bold[/B] and This is [color=#FFCCCC]colored[/color]
Run Code Online (Sandbox Code Playgroud)

将会 :

这是大胆的,这是有色的

Pas*_*TIN 19

我想你可以只使用正则表达式和preg_replace功能,以取代一切之间的[]通过一个空字符串:

$str = '[B]This is bold[/B] and This is [color=#FFCCCC]colored[/color]';
echo preg_replace('#\[[^\]]+\]#', '', $str);
Run Code Online (Sandbox Code Playgroud)

将显示:

This is bold and This is colored
Run Code Online (Sandbox Code Playgroud)


这里,我使用的模式是匹配:

  • 一个[角色:\[
  • 任何不是]角色的东西:[^\]]
    • 一次或多次: [^\]]+
  • 和一个]角色:\]

请注意[]具有特殊含义 - 这意味着当您希望对它们进行字面解释时,必须将它们转义.