2014-09-28 2 views
1

preg_match_all()을 사용하여 정규식에서 링크를 추출하는 데 문제가 있습니다. 나는 두 개의 별도의 변수에 파일에 대한 링크와 파일 형식을 추출하고 싶습니다regex php에서 링크 추출하기

some random text <a href="http://localhost/example/wp-content/uploads/2014/07/Link1.pdf\">Link1</a><a href="http://localhost/example/wp-content/uploads/2014/07/Link2.pdf\">Link2</a> 

:

나는 다음과 같은 문자열을 가지고있다.

여기 정규식 전문가가 있습니까? 나는 하루 종일 고생하고있다.

감사합니다.

답변

1
(?<=href=")(.*?\.(.*?))\\ 

보십시오. captures.see 데모를 직접 잡으십시오.

http://regex101.com/r/lS5tT3/80

$data = 'some random text <a href="http://localhost/example/wp-content/uploads/2014/07/Link1.pdf\">Link1</a><a href="http://localhost/example/wp-content/uploads/2014/07/Link2.pdf\">Link2</a>"'; 
$regex = '/(?<=href=")(.*?\.(.*?))\\\\/'; 
preg_match_all($regex, $data, $matches); 
print_r($matches); 

출력 :

내가 필요 정확히 무엇
Array 
(
    [0] => Array 
     (
      [0] => http://localhost/example/wp-content/uploads/2014/07/Link1.pdf\ 
      [1] => http://localhost/example/wp-content/uploads/2014/07/Link2.pdf\ 
     ) 

    [1] => Array 
     (
      [0] => http://localhost/example/wp-content/uploads/2014/07/Link1.pdf 
      [1] => http://localhost/example/wp-content/uploads/2014/07/Link2.pdf 
     ) 

    [2] => Array 
     (
      [0] => pdf 
      [1] => pdf 
     ) 

) 
+0

. 하지만 preg_match_all()에서이 표현식을 사용하는 이상한 이유로 나를 위해 작동하지 않습니다 .. 그것은 NULL을 반환합니다. 어떤 아이디어? – nevos

+0

@Nevos는'groups()', 링크는 cpature'group1', 형식은'group2'을 사용합니다. – vks

+0

'groups()'은 무엇입니까? 내가 그것에 대한 참조를 찾을 수 없습니다 – nevos