来自谷歌搜索结果的正则表达式链接
问题描述:
我试图从Google搜索结果中获得网址,但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.phpTł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 ())
你能帮我解决这个问题?
答
这将匹配大多数基本的url模式,并接受url的任何结尾。我在你的示例输入中对它进行了测试,它看起来像你想要的那样工作。
preg_match_all('/((?:(?!-)[a-z\d-]+[^-]\.)+[a-z]{2,6}.*)/', $body, $match)
你知道'^'和'$'是什么意思吗?他们不仅仅是每个正则表达式中使用的装饰器。 – mario 2013-05-04 14:03:02
我认为这是开始和结束的路线。我试着用这个'/^(www\.??[a-z0-9_\-]+.[a-z]+[^ WWW 2013-05-04 14:08:58
在您的摘录中,链接不会从行首开始。前面有空格。如果使用'/ m'标志,'$'只能在行结束时使用。否则'^ $'属于主题的开始/结束,而不是行。 – mario 2013-05-04 14:11:29