我有一个字符串如下
$str = 'asdasdasd,sdfsdfsdf myNumber=1234, 2323 dfdfdf9898 sdfsdfdsf 234';
我想在myNumber=1234
内返回数字。
期望的结果
$str = '1234';
我目前在需要时使用以下正则表达式preg_replace('/\myNumber=\d+/', '', $y)
进行替换,效果很好,但我不确定如何使用此方法在=
符号myNumber=1234
之后提取数字{1}}?
答案 0 :(得分:0)
您可以使用以下功能:
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,因为它在给定的字符串之间。
答案 1 :(得分:0)
您可以将preg_match
与以下正则表达式一起使用:
\bmyNumber=(\d+)
请参阅regex demo
该值将在第1组中提供。(\d+)
匹配且将 1+位数字捕获到将成为结果数组一部分的组中。
Demo:
$re = '~\bmyNumber=(\d+)~';
$str = "asdasdasd,sdfsdfsdf myNumber=1234, 2323 dfdfdf9898 sdfsdfdsf 234";
preg_match($re, $str, $m);
echo $m[1];