Я пытаюсь использовать preg_match($regexp, $filename)
для определения парсинга некоторых имен файлов и каталогов. В частности, учитывая строку типа «directory / subdirectory / filename.h», я хочу проверить, заканчивается ли строка в «filename.h»
Когда все литералы (например, '/' и '.') Экранированы, мой тест выглядит так:
preg_match('/filename\.h$/', ''directory\/subdirectory\/filename\.h');
Однако приведенная выше строка кода возвращает false.
Как ни странно, следующая строка кода возвращает true.
preg_match('/\.h$/', 'directory\/subdirectory\/filename\.h');
Кто-нибудь знает, почему это имеет значение true, когда регулярное выражение равно '/\.h$/'
, но false, когда регулярное выражение равно '/filename\.h$/'
?