$string = "c4414b8e90510db12 GET /emailtrack/blank.gif?source=mailchimp&guid=12345&campaign=myCampaign HTTP/1.1"
preg_match_all('/("GET.*?"+)/is',$string,$match);
Result:
Array (
[0] => Array (
[0] => "GET /emailtrack/blank.gif?source=mailchimp&guid=12345&campaign=myCampaign HTTP/1.1"
)
[1] => Array (
[0] => "GET /emailtrack/blank.gif?source=mailchimp&guid=12345&campaign=myCampaign HTTP/1.1"
)
)
通过preg_match_all
解析字符串只是为了获取GET字符串,但它返回GET字符串的2个结果,我只需要数组中的一个结果
感谢早先的答案对我有用。
$string = "source=xxxx&campaign=asdas&guid=121"
无论如何你可以帮我告诉我一个正则表达式从上面的字符串中提取source = xxxxx
我试过这个
preg_match_all('/source.*?\s/', $string, $match);
但是它给了我整个字符串,我想分开字符串来源,广告系列& GUID
答案 0 :(得分:2)
结果的第一个条目始终是完全匹配。您还可以在整个模式周围添加额外的括号,这将成为第一个“子模式”。
解决方案:删除括号。