Почему это совпадение регулярных выражений?

#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 .