#php #regex
#php #регулярное выражение
Вопрос:
echo preg_match("#/login#", "/login/val1-val2/dir2", $matches);
print_r($matches);
Я получаю:
1
Array
(
[0] => /login
)
Строки не равны, как я могу изменить свое регулярное выражение НА НЕ совпадающее?
Спасибо
Комментарии:
1. Регулярные выражения не используются для проверки, равны ли 2 строки. Регулярные выражения используются для проверки соответствия шаблона в строке. В вашем случае шаблон совпадает.
2. @LucM, смотрите Ответ draevor. Он понял, что я имею в виду
Ответ №1:
Используйте это: #^/login$#
. ^
И $
отмечают начало и конец строки. Конечно, если это ваш точный вариант использования, вы можете просто использовать ==
для «сопоставления» строк.
Ответ №2:
Почему бы просто не сравнить строки, если вы хотите проверить на равенство? Почему вы вообще используете регулярное выражение для этого?
Ответ №3:
Регулярное выражение соответствует, потому /login
что является подстрокой /login/val1-val2/dir2
.