2013-01-15 2 views
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" 
    ) 
) 

바로 GET 문자열을 가져올 수 있지만 GET 문자열이 개 결과를 반환하는 preg_match_all를 통해 문자열을 구문 분석, 나는 단지 배열이 근무 이전 답변으로, preg_match_all 반환이 개 결과

감사 한 결과를 필요 나를.

$string = "source=xxxx&campaign=asdas&guid=121" 

내가이

preg_match_all('/source.*?\s/', $string, $match); 

을 시도하면

위의 문자열에서 바로 소스 = xxxxx는 추출 나에게 정규식 이야기와 함께 나를 도울 수 어쨌든 거기 그러나 그것은 나에게 전체를 제공합니다 문자열, 문자열 소스를 구분하고 싶습니다. 캠페인 & guid

답변

2

결과의 첫 번째 항목은 항상 전체 일치입니다. 또한 전체 패턴 주위에 추가 괄호가 있으며 이는 첫 번째 "하위 패턴"이됩니다.

솔루션 : 괄호를 제거하십시오.