usdglander
@usdglander
Yipee-ki-yay

Как заставить эту регулярку работать?

На тексте необходимо проводить замены. Делаю в php через preg_replace:
$text = preg_replace("/{{{data[\|\d*]?}}}/i", "Какой то текст", "{{{data|5}}} {{{data}}}");

При таком выражении или "{{{data[\|\d*]{0,1}}}}/i" находит только "{{{data}}}",
Если ставлю "/{{{data[\|\d*]+}}}/i" или "/{{{data[\|\d*]*}}}/i", то находит только "{{{data|5}}}".
Нужно, чтобы находило оба. Вроде задачка элементарная, а заставить работать никак не получается. :(
upd: Прошу прощения. "/{{{data[\|\d*]*}}}/i" - работает как надо, но мне нужно не более одного повторения группы символов [\|\d*]!
  • Вопрос задан
  • 160 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
Только или "data" или "data|число"?

~{{{data(?:\|\d+)?}}}~i
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы