我想在文本文件名中查找(例如 name.txt)。你能建议我在 preg_match_all() 中使用的正则表达式吗?我创建了一些正则表达式:
preg_match_all("/^[a-zA-Z0-9_.]+[.][a-zA-Z0-9]{1,3}$/", $string, $w);
但是,总是得到一个空的结果。
我想在文本文件名中查找(例如 name.txt)。你能建议我在 preg_match_all() 中使用的正则表达式吗?我创建了一些正则表达式:
preg_match_all("/^[a-zA-Z0-9_.]+[.][a-zA-Z0-9]{1,3}$/", $string, $w);
但是,总是得到一个空的结果。
只需在您的 reg 表达式中删除这些符号(^ 和 $)
这对我有用:
preg_match_all("![a-zA-Z0-9_.]+[.][a-zA-Z0-9]{1,3}!", $string, $w);
^ - 匹配字符串的开头。
$ - 匹配字符串的结尾。
如果你的文件被放置在文本中你可以省略这个符号。
我会使用以下 reg 表达式,因为你写的那个找到扩展名由 1 到 3 个字母组成的文件,但通常扩展名包含 3 个字母(.doc,txt)
这是工作示例:
$string=" some text name.txt some text hello.doc";
preg_match_all("![a-zA-Z0-9_.]+[.][a-zA-Z0-9]{3}!", $string, $w);
print_r($w);
输出:
Array ( [0] => Array ( [0] => name.txt ) )