Regex: как соответствовать последней точке в строке

У меня есть две строки имени файла в качестве примера:

jquery.ui.min.js
jquery.ui.min.css

Какой regex я могу использовать, чтобы только соответствовать ПОСЛЕДНЕЙ точке? Мне не нужно ничто больше, просто заключительная точка.

Немного больше на том, что я делаю. Я использую preg_split PHP () функция для разделения имени файла на массив. Функция удаляет любые соответствия и дает Вам массив с элементами между разделениями. Я пытаюсь заставить это разделять jquery.ui.min.js на массив, который похож на это:

array[0] = jquery.ui.min
array[1] = js
13
задан Marshall Thompson 26 July 2010 в 03:08
поделиться

4 ответа

Я думаю, вам будет трудно использовать preg_split, preg_match должен быть лучшим выбором.

preg_match('/(.*)\.([^.]*)$/', $filename, $matches);

В качестве альтернативы посмотрите на pathinfo.

$filename = substr($file, 0, strrpos($file, '.'));
$extension = substr($file, strrpos($file, '.') + 1);
12
ответ дан 1 December 2019 в 20:42
поделиться

На первый взгляд, нет причин использовать 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'];
4
ответ дан 1 December 2019 в 20:42
поделиться

Если вы хотите извлечь последнюю часть строки, вам потребуется:

\.([^.]*)$

, если вы не хотите . или

(\.[^.]*)$

, если да.

11
ответ дан 1 December 2019 в 20:42
поделиться
\.[^.]*$
2
ответ дан 1 December 2019 в 20:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: