正则表达式没有正确匹配模式

时间:2013-11-10 03:02:13

标签: php regex grep

数据看起来像这样

cityID=123456789&sharing=blahblahblah

目前在做

$cityID = preg_grep("/cityID=.\d\&$/", $sometext);

print_r($cityID);

目前正在打印     阵列(     )

我想要打印     123456789

2 个答案:

答案 0 :(得分:0)

问题是$标记了行尾,因为此模式不一定在行的末尾。同样\d在&符号之前不允许超过一位数,所以我添加了+。 (另外,请注意.匹配任何角色;不清楚这是你想要的,这就是我上面提到的原因。)

这应该适合你:

preg_match("/cityID=\d+&/", $input_line, $output_array);

要详细了解此模式,请访问http://www.phpliveregex.com/p/1WH

答案 1 :(得分:0)

您可以使用preg_match_all()

$str = "cityID=123456789&sharing=blahblahblahcityID=123456789&sharing=blahblahblahcityID=123456789&sharing=blahblahblah";

// or
// $str = "cityID=123456789&sharing=blahblahblah
// cityID=123456789&sharing=blahblahblah
// cityID=123456789&sharing=blahblahblah";

$result = preg_match_all("/cityID=(\d+)/", $str, $matches);

print_r($matches[1]);

输出:

Array ( [0] => 123456789 [1] => 123456789 [2] => 123456789 )