В вашем паттерне вы также должны добавить косую черту в конце:
/\/([0-9]{0,})\//i
^^
Вам не нужно экранировать косую черту, если вы переходите на другой разделитель, такой как, например, ~
, и {0,}
можно записать как *
, но также будет соответствовать пустой строке. Вы можете обновить его, чтобы вместо него использовать +
, чтобы соответствовать 1+ раз цифре.
$pattern = "~/([0-9]+)/~i";
Ваше значение в первой группе захвата. Обратите внимание, что начальная граница отсутствует, поэтому если в строке есть несколько частей с / digits /, то они также будут сопоставлены.
Regex demo
Другим вариантом может быть сопоставление обеих косых черт от начала строки и использование \K
, чтобы забыть, что было найдено. Затем сопоставьте цифры 1+ и подтвердите, что справа это /
^/[^/]+/\K\d+(?=/)
Regex demo