2016-06-10 470 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