2016-06-10 4 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()

EDIT:

Несмотря на то, что объяснение доступно по ссылке, я ставлю то же самое на запрос OP:

a. .*? лениво соответствует любому символу (кроме символа новой строки)
b. \. соответствует персоналу . буквально
c. (.*)$ все до конца ввода (представленное $) затем записывается в первую группу захвата.

+0

Это не работает, если имя файла - 'pict.ure.jpeg'. '. *?' избыточно, а расширение - по крайней мере один символ, а не нуль. – Toto

Смежные вопросы