我有一个数字,有PHPBB属性UBB标签(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()函数,如果它的确与众不同。
这将取代粗体,下划线和斜体标签。
$new_text = preg_replace('~\[(/?[bui]):\d+\]~is', '<$1>', $text);
echo $new_text; // This is <b>bold</b> text and so is <b>this</b>.
这应与打开和关闭标签为任何类型的标签工作:
$string = preg_replace("/\[(\/?[a-zA-Z]+):[\d]{5}\]/is", "<$1>", $string);
preg_replace("/\[\/?b:[0-9]*?\]/","","[b:17171]this[/b:17171]");
http://ideone.com/fDCZM