簡體   English   中英

正則表達式與模式不正確匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM