2017-01-25 11 views
0

Это выражение находит имена файлов в html-контенте, который содержит цифры, буквы и символы подчеркивания.Preg match filenames from html content

preg_match_all('/(\w+\.\w{2,4})/', $content); 

Но не находите имя файла как file-name.txt. Как я могу изменить выражение, чтобы найти имена файлов с тире и другими юридическими символами?

+0

Определить * другие юридические символы *. –

+0

Минимально это тире, не так ли? В имени файла может быть пробел, но он может генерировать странные результаты (например, aaa .bbb может быть именем файла или текстовым представлением). Таким образом, тире является юридический характер, который я бы хотел добавить в выражение. Я попробовал, но безуспешно. – tomasr

ответ

2

Предполагая, что суффикс файла не содержит букв/цифр: не подходит ли для вас класс char, например [\w-]? Что именно вы пробовали?

preg_match_all('/([\w-]+\.\w{2,4})/', $content); работает для меня для имен файлов, таких как файл-name.txt

Осторожно: дефис должен быть в конце, в противном случае диапазон предполагается для класса полукокса с помощью PHP.

 Смежные вопросы

  • Нет связанных вопросов^_^