我想找到文本文件名(例如name.txt)。 你能建议我在preg_match_all()中使用正则表达式吗? 我创建了一些正则表达式:
preg_match_all(“/ ^ [a-zA-Z0-9 _。] + [。] [a-zA-Z0-9] {1,3} $ /”,$ string,$ w);
但是,总是得到一个空洞的结果。
答案 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 ) )