, Есть также некоторые рекурсивные тесты, в которых вы не используете обратную косую черту, чтобы говорить о группе. Именованные группы превосходят нумерованные.
лупого парсера bbcode я хотел добавить два определения в одно, мое первоначальное определение было для preg_replace:
'#\[s\](.*?)\[/s\]#si', '<strike>\\1</strike>'
И это работает, я хотел, чтобы пользователь мог использовать либо[s]
или же[strike]
чтобы начать текст в этом формате, поэтому я, естественно, добавил что-то вроде этого, думая, что это будет работать:
'#\[(s|strike)\](.*?)\[/(s|strike)\]#si', '<strike>\\1</strike>'
К сожалению, это не так, как вы ожидаете, оба[s]
а также[strike]
(используется правильно) сделать:s
а такжеstrike
(моя уценка верна, чтобы показать ее реальный результат, она показывает s или удар независимо от того, что внутри)
Почему он заменяет внутренний текст именем тега? Неужели мои добавления скобок вокруг s | удаляют проблему? Я, вероятно, делаю все это неправильно ..