У меня есть это регулярное выражение /^(string@)([^#\s\\\\]|(\\\d{3}))*$/
.
Предполагается, что он может принимать строки, которые начинаются с string@
, затем могут следовать все символы, кроме #
, \
или любые пробельные символы. \
может появиться, только если за ним следуют 3 цифры.
Когда я проверяю это регулярное выражение со строкой string@test\07test
на regex101.com и phpliveregex.com, совпадений не найдено (правильно), но preg_match()
возвращает true
для той же строки.
Что я делаю не так?
Спасибо
ОБНОВЛЕНИЕ:
$regex = "/^(string@)([^#\s\\\\]|(\\\d{3}))*$/";
preg_match($regex, 'string@test\07test'); # this returns false, as it should
preg_match($regex, "string@test\07test"); # this returns true
Тестовая строка берется из файла с использованием fgets()
и сохраняется в переменной, хотя, поэтому я не могу передать ее в preg_match()
и поставить апострофы вокруг нее, мне нужно передать переменную ($ string, например), и preg_match($regex, $string)
снова неверно возвращает true.