regex to remove bbcode tags with atrributes

2019-08-26 14:23发布

I've got a number of bbcode tags that have phpbb attributes (5 digit value - assuming text color or something). They look like this in the text:

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

I cannot get a regex working that finds bracket+b+colon+any_combo_of_5_digits+end_bracket and lets me replace it with corresponding html. Using php's preg_replace() function, if it makes a difference.

4条回答
冷血范
2楼-- · 2019-08-26 14:27

This should work with both opening and closing tags for any type of tag:

$string = preg_replace("/\[(\/?[a-zA-Z]+):[\d]{5}\]/is", "<$1>", $string);
查看更多
【Aperson】
3楼-- · 2019-08-26 14:37

The regular expression you need is:

\[/?b:\d{5}]
查看更多
smile是对你的礼貌
4楼-- · 2019-08-26 14:45

This would replace bold, underline and italic tags.

$new_text = preg_replace('~\[(/?[bui]):\d+\]~is', '<$1>', $text);
echo $new_text; // This is <b>bold</b> text and so is <b>this</b>.
查看更多
对你真心纯属浪费
5楼-- · 2019-08-26 14:45
preg_replace("/\[\/?b:[0-9]*?\]/","","[b:17171]this[/b:17171]");

http://ideone.com/fDCZM

查看更多
登录 后发表回答