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_allGET文字列をフェッチするためだけに文字列を解析しますが、GET文字列の結果が2つ返されるため、配列に必要な結果は1つだけです。

以前の答えをありがとう、それは私のために働いた。

$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 に答える