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