Я бы хотел сопоставить последний экземпляр /
(я полагаю, вы используете [^/]+$
) и копировать содержимое следующих четырех или менее чисел, пока не доберетесь до тире -
.
Я считаю, что "правильный" способ вернуть это число - это 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;