Для глупого BBcode парсер Я хотел бы добавить два определения в одно, мое первоначальное определение было это для preg_replace:PHP/Regex: просто регулярное выражение для BBcode [с] или [удар] не работает
'#\[s\](.*?)\[/s\]#si', '<strike>\\1</strike>'
И это работает, я хотел пользователь, чтобы иметь возможность использовать либо [s]
или [strike]
инициировать текст в этом формате, так что я, естественно, добавил что-то вроде этого, думая, что будет работать:
'#\[(s|strike)\](.*?)\[/(s|strike)\]#si', '<strike>\\1</strike>'
к сожалению, это не удалось, вместо что вы ожидаете, и [s]
и [strike]
(используется должным образом) составляют:
и
s
(мой уценки правильно показать свой реальный результат, который выглядит, он показывает ей или ударить независимо от того, что находится внутри него)strike
Почему заменить внутренний текст вместо имени тега? Является ли добавление скобок вокруг проблемы s? Я, вероятно, все это делаю неправильно.
BBcode не является регулярным. Используйте парсер [BBCode parser] (http://de3.php.net/manual/en/book.bbcode.php) – Gordon
@ Gordon, по многим причинам я хочу использовать регулярные выражения для этого проекта. Я объединяю его со многими фильтрами/etc. – John
@John Regex aint no [Золотой молот] (http://sourcemaking.com/antipatterns/golden-hammer). – Gordon