【问题标题】:regex to extract url from google search正则表达式从谷歌搜索中提取 url
【发布时间】:2013-01-30 19:32:13
【问题描述】:

我需要从谷歌搜索中提取一个网址,我试试这个:

if($google =~ /<h3 class="r"><a href="(.*)"/i){
print "$1\n$2\n$3\n$4\n$5\n$6\n$7\n$8\n$9\n$10";
}

但是这是错的吗,请帮帮我;-)

【问题讨论】:

  • 您只有一次捕获,但您正在打印第一次、第二次、第三次、...、第九次和第十次捕获的内容。
  • 我……太棒了。你的手指做了我能想象的更多工作! print join("\n",map{"$".$_}(1..10))
  • 不要使用正则表达式解析 HTML。您无法使用正则表达式可靠地解析 HTML。一旦 HTML 与您的期望发生变化,您的代码就会被破坏。有关如何使用 PHP 模块正确解析 HTML 的示例,请参阅 htmlparsing.com/php.html
  • @loldop、"$1""$".1(如果不是语法错误,那就是 "\$1")不一样。 ;-)
  • @Qtax 是的,我需要评估,但是......他的手指疯了:)

标签: regex perl url html-parsing


【解决方案1】:
while($google =~ /<h3 class="r"><a href="(.*?)"/ig)
{
  print "$1\n";
}

请注意,您需要设置 ~//g(全局搜索)才能在 while 循环中转到下一个机器。 也可以使用(.*?) 而不是(.*),否则您将在整个页面中获得 1 美元,直到页面上的最后报价

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    相关资源
    最近更新 更多