[英]regex not matching pattern correctly
數據看起來像這樣
cityID=123456789&sharing=blahblahblah
正在做
$cityID = preg_grep("/cityID=.\d\&$/", $sometext);
print_r($cityID);
當前正在打印數組()
我希望它打印123456789
問題在於$
標記行尾,因為此模式不一定在行尾。 另外, \\d
不允許在&號前使用多個數字,因此我添加了+
。 (另外,請注意, .
匹配任何字符;目前尚不清楚您想要的是什么,這就是我在上面詢問的原因。)
這應該適合您:
preg_match("/cityID=\d+&/", $input_line, $output_array);
要對這種模式進行更多實驗,請訪問http://www.phpliveregex.com/p/1WH
您可以使用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 )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.