正则表达式删除带有属性的bbcode标签

时间:2011-03-31 20:20:22

标签: php regex preg-replace bbcode

我有很多具有phpbb属性的bbcode标签(5位数值 - 假设文字颜色或其他东西)。它们在文中看起来像这样:

This is [b:31747]bold[/b:31747] text and so is [b:17171]this[/b:17171].

我无法找到bracket+b+colon+any_combo_of_5_digits+end_bracket的正则表达式,让我用相应的html替换它。使用php的preg_replace()函数,如果它有所作为。

4 个答案:

答案 0 :(得分:1)

这将取代粗体,下划线和斜体标签。

$new_text = preg_replace('~\[(/?[bui]):\d+\]~is', '<$1>', $text);
echo $new_text; // This is <b>bold</b> text and so is <b>this</b>.

答案 1 :(得分:0)

这适用于任何类型标记的开始和结束标记:

$string = preg_replace("/\[(\/?[a-zA-Z]+):[\d]{5}\]/is", "<$1>", $string);

答案 2 :(得分:0)

您需要的正则表达式是:

\[/?b:\d{5}]

答案 3 :(得分:0)

preg_replace("/\[\/?b:[0-9]*?\]/","","[b:17171]this[/b:17171]");

http://ideone.com/fDCZM