Php Preg匹配html内容中的文件名

Php Preg匹配html内容中的文件名,php,regex,preg-match-all,Php,Regex,Preg Match All,此表达式在包含数字、字母和下划线的html内容中查找文件名 preg_match_all('/(\w+\.\w{2,4})/', $content); 但找不到类似file-name.txt的文件名。如何更改表达式以查找带有破折号和其他合法字符的文件名?假设文件后缀不包含非字母/数字:像[\w-]这样的char类不适合您吗?你到底试了什么 preg\u match\u all('/([\w-]+\.\w{2,4})/',$content)适用于像file-name.txt这样的文件名 注意:连

此表达式在包含数字、字母和下划线的html内容中查找文件名

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

但找不到类似file-name.txt的文件名。如何更改表达式以查找带有破折号和其他合法字符的文件名?

假设文件后缀不包含非字母/数字:像
[\w-]
这样的char类不适合您吗?你到底试了什么

preg\u match\u all('/([\w-]+\.\w{2,4})/',$content)适用于像file-name.txt这样的文件名


注意:连字符必须在末尾,否则PHP会假定char类有一个范围。

假设,文件后缀不包含非字母/数字:像
[\w-]
这样的char类不适合你吗?你到底试了什么

preg\u match\u all('/([\w-]+\.\w{2,4})/',$content)适用于像file-name.txt这样的文件名


注意:连字符必须在末尾,否则PHP会假定char类有一个范围。

定义其他合法字符。至少是破折号,不是吗?文件名可以是空格,但会产生奇怪的结果(例如aaa.bbb可以是文件名或文本表示)。所以破折号是法律性质,我想添加到表达。我试过了,但没有成功。定义其他法律角色。至少是dash,不是吗?文件名可以是空格,但会产生奇怪的结果(例如aaa.bbb可以是文件名或文本表示)。所以破折号是法律性质,我想添加到表达。我试过了,但没有成功。