У меня есть строка следующим образом
$str = 'asdasdasd,sdfsdfsdf myNumber=1234, 2323 dfdfdf9898 sdfsdfdsf 234';
Я хочу вернуть цифры в пределах myNumber=1234
.
Желаемый результат
$str = '1234';
В настоящее время я использую следующее регулярное выражение preg_replace('/\myNumber=\d+/', '', $y)
для замены при необходимости, которое отлично работает, но я не уверен, как я могу использовать это для извлечения чисел после знака =
из myNumber=1234
?
2 ответа
Вы можете использовать preg_match
со следующим регулярным выражением:
\bmyNumber=(\d+)
См. демонстрацию регулярного выражения
Значение будет доступно в группе 1. (\d+)
соответствует и захватывает 1+ цифр в группу, которая будет частью результирующего массива.
Демо:
$re = '~\bmyNumber=(\d+)~';
$str = "asdasdasd,sdfsdfsdf myNumber=1234, 2323 dfdfdf9898 sdfsdfdsf 234";
preg_match($re, $str, $m);
echo $m[1];
Вы можете использовать следующую функцию:
function getStringBetween($str, $from, $to)
{
$sub = substr($str, strpos($str, $from) + strlen($from), strlen($str));
return substr($sub, 0, strpos($sub, $to));
}
Тогда вы можете использовать это так:
$a = getStringBetween($str, 'myNumber=', ',');
Который даст вам результат 1234, поскольку он находится между заданными строками.
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.