2011-03-29 4 views
1

다음 정규 표현식은 모든 이미지 src를 가져 오지만 시작 부분에 src=" 및 경로 끝에 "으로 표시됩니다.간단한 preg_match 질문

어떻게 제거하고 경로 만 표시 할 수 있습니까?

preg_match('/src="(.*?)"/i' , $content1 , $matches); 
+0

그냥 에코'$ 일치 [1]' – Starx

답변

3

코드 :

$re = '/(?<=src=")(?:.*?)(?=")/ui'; 
$txt = '<img src="http://www.gravatar.com/avatar/6f5de9?s=32&amp;d=identicon&amp;r=PG" height="32" width="32" alt="">'; 

$nMatches = preg_match($re, $txt, $aMatches); 

출력 :

Array 
(
    [0] => http://www.gravatar.com/avatar/6f5de9?s=32&d=identicon&r=PG 
) 
4

거의 제대로하고 있습니다. 정규 표현식은 정확하지만 :

echo $matches[1]; 

이 출력 할 최초 포착 서브 패턴. 첫 번째 일치 ($matches[0])에는 일치 한 전체 텍스트 (항상 src="" 비트 포함)가 포함됩니다.

2

$ 매치는 첫 번째 요소에 전체 일치 패턴을 포함하고 각 하위 패턴에 대해 요소를 포함합니다. 이 경우 원하는 물건에 대해 $ matches [1]을 원합니다.