Задать вопрос
Umr001
@Umr001
php

Как сделать регулярку более сторогой?

Сейчас при подобной регулярке:
preg_match("/update.[0-9]+.[a-z]+/", $input_line, $output_array);

Проходит следующее: update/213/he/he/he
А по задумке должно проходить только update/213/he
Как быть?
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Stepik
    Язык программирования PHP
    1 неделя
    Далее
Решения вопроса 1
@MadridianFox
Web-программист, многостаночник
Надо добавить маркеры начала и окончания строки. Вот так:
preg_match("/^update\/[0-9]+\/[a-z]+$/", $input_line, $output_array);

Иначе выражение будет срабатывать на любые строки в которых (в середине длинного текста, например) есть искомый шаблон.
Ну и слэши явно указать надо.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега PHP
Добрый день.
Попробуйте сделать так:
preg_match("#update\/[0-9]+\/[a-z]+#", $input_line, $output_array);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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