Подтвердить что ты не робот

PHP Использование RegEx для получения подстроки строки

Я ищу способ разобрать подстроку с помощью PHP и натолкнулся на preg_match, но я не могу найти правильное правило, которое мне нужно.

Я анализирую веб-страницу и мне нужно взять числовое значение из строки, строка похожа на эту

producturl.php?id=736375493?=tm

Мне нужно иметь возможность получить эту часть строки:

736375493

Спасибо Аарон

4b9b3361

Ответ 1

$matches = array();
preg_match('/id=([0-9]+)\?/', $url, $matches);

Это безопасно, если формат изменяется. ответ slandau не будет работать, если у вас когда-либо были другие номера в URL-адресе.

php.net/preg-match

Ответ 2

<?php
$string = "producturl.php?id=736375493?=tm";
preg_match('~id=(\d+)~', $string, $m );
var_dump($m[1]); // $m[1] is your string
?>

Ответ 3

$string = "producturl.php?id=736375493?=tm";
$number = preg_replace("/[^0-9]/", '', $string);

Ответ 4

К сожалению, у вас есть неверно сформированная строка запроса URL, поэтому метод регулярных выражений является наиболее подходящим. Посмотри, что я имею в виду.

Нет необходимости в захвате групп. Просто сопоставьте id= затем забудьте эти символы с \K, а затем выделите один или несколько следующих цифровых символов.

Код (Демо)

$str = 'producturl.php?id=736375493?=tm';
echo preg_match('~id=\K\d+~', $str, $out) ? $out[0] : 'no match';

Выход:

736375493