Захват группы чисел с регулярным выражением - PullRequest
0 голосов
/ 09 сентября 2018

я пытаюсь захватить группу чисел за словом " image " в URL

это URL http://example.com/image123456/super_moon_image_2

и это мои ожидания http://my-example.com/get.php?123456

Я использую этот код, это работает для некоторого URL, но результат будет неработоспособным, если в URL есть другое число.

$link = 'http://example.com/image123456/super_moon_image_2';
$re = '/[^0-9]/';
$str = preg_replace($re, '', $link);
echo 'http://my-example.com/get.php?' . $str;

Может кто-нибудь помочь мне исправить регулярное выражение спасибо.

1 Ответ

0 голосов
/ 09 сентября 2018

Вы можете использовать следующий шаблон регулярных выражений:

(.+?)image(\d+).+

И заменить на $1get.php?$2.

Вот демоверсия regex101 .

Я не знаю много PHP, но ваш код должен выглядеть примерно так:

$link = 'http://example.com/image123456/super_moon_image_2';
$re = '/(.+?)image(\d+).+/m';
$subst = '$1get.php?$2';
$newlink = preg_replace($re, $subst, $link);
echo $newlink;

Пример Live PHP .

...