在文本文件名中找到preg_match_all

时间:2012-06-12 21:13:44

标签: preg-match preg-match-all

我想找到文本文件名(例如name.txt)。 你能建议我在preg_match_all()中使用正则表达式吗? 我创建了一些正则表达式:

  

preg_match_all(“/ ^ [a-zA-Z0-9 _。] + [。] [a-zA-Z0-9] {1,3} $ /”,$ string,$ w);

但是,总是得到一个空洞的结果。

1 个答案:

答案 0 :(得分:0)

只需删除reg 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 ) )