在字符串中的特定字符后获取值

时间:2016-05-09 12:07:58

标签: php regex preg-match

我有一个字符串如下

$str = 'asdasdasd,sdfsdfsdf myNumber=1234, 2323 dfdfdf9898 sdfsdfdsf 234';

我想在myNumber=1234内返回数字。

期望的结果

$str = '1234';

我目前在需要时使用以下正则表达式preg_replace('/\myNumber=\d+/', '', $y)进行替换,效果很好,但我不确定如何使用此方法在=符号myNumber=1234之后提取数字{1}}?

2 个答案:

答案 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];