Я хотел бы сопоставить последний экземпляр /
(думаю, вы используете [^/]+$
) и скопировать содержимое следующих четырех или менее чисел, пока не доберусь до тире -
.
Я считаю, что «правильный» метод возврата этого числа — через preg_split, но я не уверен. единственный другой способ, который я знаю, это взорваться на /
, перевернуть массив, взорвать на -
, присвоить. Я уверен, что есть более элегантный способ?
Например
example.com/12-something // get 12
example.com/996-something // get 996
example.com/12345-no-deal // return nothing
Я, к сожалению, не гуру регулярных выражений, как некоторые из вас, ребята.
Вот уродливый способ сделать то же самое.
$strip = array_reverse(explode('/', $page));
$strip = $strip[0];
$strip = explode('-', $strip);
$strip = $strip[0];
echo (strlen($strip) < 4) ? (int)$strip : null;
/\/([^-]{0,4})/
Число будет в первой группе захвата. - person Bailey Parker   schedule 12.08.2011