регулярное выражение для удаления тегов bbcode с атрибутами - PullRequest
0 голосов
/ 01 апреля 2011

У меня есть несколько тегов bbcode, которые имеют атрибуты phpbb (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 ]

1 голос
/ 01 апреля 2011

Это заменит теги жирный, подчеркивание и курсив.

$new_text = preg_replace('~\[(/?[bui]):\d+\]~is', '<$1>', $text);
echo $new_text; // This is <b>bold</b> text and so is <b>this</b>.
0 голосов
/ 01 апреля 2011
preg_replace("/\[\/?b:[0-9]*?\]/","","[b:17171]this[/b:17171]");

http://ideone.com/fDCZM

0 голосов
/ 01 апреля 2011

Вам нужно регулярное выражение:

\[/?b:\d{5}]
0 голосов
/ 01 апреля 2011

Это должно работать как с открывающими, так и с закрывающими тегами для тегов любого типа:

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