У меня есть две строки имени файла в качестве примера:
jquery.ui.min.js
jquery.ui.min.css
Какой regex я могу использовать, чтобы только соответствовать ПОСЛЕДНЕЙ точке? Мне не нужно ничто больше, просто заключительная точка.
Немного больше на том, что я делаю. Я использую preg_split PHP () функция для разделения имени файла на массив. Функция удаляет любые соответствия и дает Вам массив с элементами между разделениями. Я пытаюсь заставить это разделять jquery.ui.min.js на массив, который похож на это:
array[0] = jquery.ui.min
array[1] = js
Я думаю, вам будет трудно использовать preg_split
, preg_match
должен быть лучшим выбором.
preg_match('/(.*)\.([^.]*)$/', $filename, $matches);
В качестве альтернативы посмотрите на pathinfo
.
$filename = substr($file, 0, strrpos($file, '.'));
$extension = substr($file, strrpos($file, '.') + 1);
На первый взгляд, нет причин использовать regex для этого. Вот 2 различных метода, использующих функции, оптимизированные для статического разбора строк:
Вариант 1:
$ext = "jquery.ui.min.css";
$ext = array_pop(explode('.',$ext));
echo $ext;
Вариант 2:
$ext = "jquery.ui.min.css";
$ext = pathinfo($ext);
echo $ext['extension'];
Если вы хотите извлечь последнюю часть строки, вам потребуется:
\.([^.]*)$
, если вы не хотите .
или
(\.[^.]*)$
, если да.