2016-06-10 210 views
0

如何使用preg_replace获取文件的扩展名?什么是正确的regex来解决这个问题?使用preg_replace获取文件扩展名

$test = "picture.jpeg"; 

$ret = preg_replace("/(\.[\w]+)$/", "$1", $test); 
echo $ret; //expected output: jpeg 
+0

你是指以'preg_replace'结尾的文件?文件如何以功能结束! – CinCout

+0

在这个例子中的文件结尾是:'.jpeg' – Black

+0

所以基本上你想获得文件的扩展名? – CinCout

回答

1

要得到任何文件的扩展名,使用正则表达式:

.*?\.(.*)$

运行它Regex101

regex可以preg_replace()

编辑使用:

尽管链接上有解释,但我在OP的要求中提供了相同的解释:

a。 .*?懒惰地匹配任何字符(除换行符)
b。 \.字符与字符.匹配
c。然后在第一个捕获组中捕获到输入结束为止的所有内容(由$表示)。

+0

如果文件名为'pict.ure.jpeg',则不起作用。 '。*?'是多余的,扩展名至少是一个字符,而不是零。 – Toto