, Есть также некоторые рекурсивные тесты, в которых вы не используете обратную косую черту, чтобы говорить о группе. Именованные группы превосходят нумерованные.

лупого парсера 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 | удаляют проблему? Я, вероятно, делаю все это неправильно ..

Ответы на вопрос(1)

Ваш ответ на вопрос