1

我试图从 Google 结果中获取URL,但 Google api 不允许获得超过前 100 个结果,所以我想复制 Google 内容,将其粘贴到文件中并使用 preg_match_all 来获取结果。不幸的是,我不擅长正则表达式。

有人可以帮我弄这个吗?主要问题是链接没有“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 ( ) )

你能帮我修一下吗?

4

1 回答 1

0

这将匹配大多数基本的 url 模式,并接受 url 的任何结尾。我在您的示例输入上对其进行了测试,它似乎可以按照您的意愿工作。

preg_match_all('/((?:(?!-)[a-z\d-]+[^-]\.)+[a-z]{2,6}.*)/', $body, $match)
于 2013-05-04T14:51:25.917 回答