0
$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 分开

4

1 回答 1

2

结果的第一个条目始终是完整匹配。整个模式周围还有额外的括号,这将成为第一个“子模式”。

解决方法:去掉括号。

于 2013-01-15T00:25:21.687 回答