2013-05-04 3 views
1

Google 결과에서을 가져 오려고했지만 Google api는 처음 100 개가 넘는 결과를 얻을 수 없으므로 Google 콘텐츠를 복사하여 파일에 붙여 넣을 것을 고려했습니다. preg_match_all을 사용하여 결과를 얻습니다. 불행히도 나는 정규 표현식에 익숙하지 않다.Google 검색 결과에서 정규식 링크

누군가가 도와 줄 수 있습니까? 주요 문제는 링크에 "http : //"가 없다는 것입니다.

$body="PHP – Wikipedia, wolna encyklopedia 
     pl.wikipedia.org/wiki/PHP‎ 
     PHP jest najczęściej stosowany do tworzenia skryptów po stronie serwera WWW, ale może być on również używany do przetwarzania danych z poziomu ... 
     Możliwości - Historia - Moduły - Składnia 
     PHP: Hypertext Preprocessor 
     php.net/‎Tłumaczenie strony 
     Server-side HTML embedded scripting language. It provides web developers with a full suite of tools for building dynamic websites: native APIs to Apache and ... 
     Downloads - Documentation - A simple tutorial - News Archive - 2012 
     PHP: Downloads 
     php.net/downloads.php‎Tłumaczenie strony 
     Binaries for other systems. We do not distribute UNIX/Linux binaries. Most Linux distributions come with PHP these days, so if you do not want to compile your ... 
     PHP Tutorial - W3Schools 
     www.w3schools.com/php/‎Tłumaczenie strony 
     Provides basic to advanced PHP functions. Users can also learn how to integrate PHP with other languages such as MYSQL, AJAX, and XML. 
     Kurs PHP 
     phpkurs.pl/‎ 
     Kurs programowania w języku PHP. Kurs ten ma za zadanie zaznajomić osobę kompletnie nieobeznaną z tym językiem na tyle, aby sama była w stanie napisać ... 
     Podstawy - Operacje na plikach - Ciągi znakowe (stringi) - Tablice"; 
    preg_match_all('/^(www\.)?[a-z0-9_\-]+.[a-z]+$/', $body, $match); 

print_r($match); 

결과 :

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

당신이 내가 그것을 해결하는 데 도움이 수 있습니까?

+1

'^'및'$'의 의미를 아십니까? 그들은 모든 정규 표현식에서 사용되는 데코레이터가 아닙니다. – mario

+0

나는 이것이 선의 시작과 끝이라고 생각한다. 나는 이것으로 시도했다 '/^(www\.)?[a-z0-9_--]+.[a-z]+[^<]*$/'. Cen 당신이 그걸 잘못 생각해? – WWW

+1

발췌 부분에서 링크가 줄 시작 부분에서 시작되지 않습니다. 앞에는 공백이 있습니다. 그리고'$'는'/ m' 플래그가 사용되면 줄 끝에서만 작동합니다. 그렇지 않으면'^ $'는 줄이 아닌 제목의 시작/끝과 관련이 있습니다. – mario

답변

0

대부분의 기본 URL 패턴과 일치하며 URL의 끝을 수락합니다. 귀하의 예제 입력을 테스트하고 원하는 것처럼 작동하는 것 같습니다.

preg_match_all('/((?:(?!-)[a-z\d-]+[^-]\.)+[a-z]{2,6}.*)/', $body, $match) 
관련 문제