LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1995|回复: 6

请问:如何用perl提取网址?

[复制链接]
发表于 2004-2-6 16:45:30 | 显示全部楼层 |阅读模式
见下面链接,
http://www.linuxsir.cn/bbs/showthread.php?threadid=88256
用shell很简单,不知道用perl何如? ;)
发表于 2004-2-6 21:19:59 | 显示全部楼层
我只是学了一点perl,水平不行,要写一个通用的程序是不行,每次都是针对具体情况写一个小脚本用用,这个是我以前写的一个,本来是用来获取某网页上的jpg文件的地址的,我把jpg改成rar了。

  1. #! /usr/bin/perl -w

  2. use LWP::Simple;

  3. die "usage: URL\n" unless @ARGV;
  4. $doc = get($ARGV[0]);
  5. foreach (split(/\s+/, $doc)){
  6.   if(/"(.*rar)"/i){
  7.     print $1, "\n";
  8.   }
  9. }
复制代码

可以用xxx http://www.linuxsir.cn/bbs/showthread.php?threadid=88256 试试
发表于 2004-2-6 21:27:09 | 显示全部楼层
象他那个文件可以用

  1. #! /usr/bin/perl -w

  2. while(<>){
  3.   if(/<(.*rar)>/i){
  4.     print $1, "\n";
  5.   }
  6. }
复制代码
 楼主| 发表于 2004-2-6 23:03:02 | 显示全部楼层
我也来一个!
  1. #!perl
  2. #
  3. print "perl version is:$]\n";
  4. foreach (`cat wwwfile`) {
  5.         if (/http.*rar/) {
  6.                 print "$&\n";
  7.         }
  8. }
复制代码
请devel指教 ;)
发表于 2004-2-7 09:57:25 | 显示全部楼层
最初由 javalee 发表
我也来一个!

  1. #!perl
  2. #
  3. print "perl version is:$]\n";
  4. foreach (`cat wwwfile`) {
  5.         if (/http.*rar/) {
  6.                 print "$&\n";
  7.         }
  8. }
复制代码

请devel指教 ;)


javalee的代码真是披着perl皮的shell:p
发表于 2004-2-7 18:21:10 | 显示全部楼层
汗~~~~:rolleyes: 不懂了。。

最多在正则那里改成这样:
$input =~ /[ "http" "ftp" ]*rar/m
按javalee的完全用perl就这样:

  1. #!/usr/bin/perl -w
  2. open(FH,"filename") or die "could not open filename::$! " ;
  3. foreach (<FH>) {
  4.   if( $_ =~ /["http" "ftp"]*rar/m  ) {
  5.        print "$&\n";
  6.   }
  7. }
  8. close (FH);
复制代码

但匹配的都答应出rar
print "$&\n";:rolleyes: 这里请斑竹指教/
 楼主| 发表于 2004-2-7 21:13:07 | 显示全部楼层
最初由 LYOO 发表
javalee的代码真是披着perl皮的shell:p

,是有shell的痕迹~,也许和我看的教材有关吧~ ;)
TO:devel
记住:perl的哲学是无限制的,一个问题有N种解决方法.
$&变量拥有所有匹配的模式,见:
http://www.linuxsir.cn/bbs/showthread.php?threadid=76477
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表