Bizdelnick, это плохо, потому, что там в целом класс сделан примерно так:
Код: Выделить всё
function BBCode($string){
$patterns = array(
'`\*\*(.+?)\*\*`is',
'`\*(.+?)\*`is',
'`%%((?!<br \\>).+?)%%`is',
<тут ещё много таких>
$replaces = array(
'<b>\\1</b>',
'<i>\\1</i>',
'<span class="spoiler">\\1</span>',
<тут ещё много таких>
$string = preg_replace($patterns, $replaces , $string);
то бишь легко и красиво вставить ещё проверку не получится.
ну то есть я конечно наверно как-нибудь извернуться могу, но я очень надеялся поменять регексп :3
поясню, зачем мне оно. может быть будут идеи.
мне нужно, чтобы были вложенные коды "%%"
например такие:
второй уровень вложенности определяется по тому, что коды на одной строке.
таким образом я хотел сделать паттерн для %%xxx%% без тегов <br \> и оставить ещё старый.
чтобы сначала отрабатывал новый, и получалось
а затем уже старый.
такие дела.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.