|
发表于 2005-7-15 09:09:54
|
显示全部楼层
从水木Perl版找了一篇, 可以获取url, 至于<a href="aa">bb</a>里面的bb,
我这而续貂了:
$regexp = q/<\s*a\b[^>]+\bhref\s*=\s*(?:["\']?)([^>\s"\']+)>([^<]+)</;
$1 is aa
$2 is bb
不过有个局限, 要求数据中<a ...>和</a>在同一行,并且一行中只能
有一个这样的链接,所以需要你预处理一下数据:
将文件中的所有换行符去掉,再将"</a>"替换成"</a>\n",这点不难做吧
发信人: yemanden (好好学习,天天向上。), 信区: Perl
标 题: Re: 怎么分析这个regular exp?
发信站: BBS 水木清华站 (Thu Feb 27 17:21:41 2003), 转信
试了一把,这个正则表达式写的还真不赖:-)
注意我在原先的那个表达式里加了一个"]".
建议斑竹可m一下这个表达式。
17:21:25$perl -c a.pl
a.pl syntax OK
17:21:29$
17:21:34$perl a.pl
<a href="http://www.abc.com/index.htm#toc >
Matched: [http://www.abc.com/index.htm#toc]
< a href = 'ftp://ftp.abc.com/readme.txt hehe' >
Matched: [ftp://ftp.abc.com/readme.txt]
17:23:28$more a.pl
$regexp = q/<\s*a\b[^>]+\bhref\s*=\s*(?:["\']?)([^>\s"\']+)/;
while (<STDIN>) {
if (/$regexp/) {
print "Matched: [$1]\n";
} else {
print "No matched!\n";
}
}
17:23:34$
【 在 jinxxll (bryan) 的大作中提到: 】
: i have found a regular express to parse URL in web pages.
: "<\s*a\b[^>+\bhref\s*=\s*(?:["\']?)([^>\s"\']+)"
: 怎么分析这个, 敬请高手指点。 谢谢。
--
※ 修改:·yemanden 于 Feb 27 17:22:06 修改本文·[FROM: 166.111.174.130]
※ 修改:·yemanden 于 Feb 27 17:24:28 修改本文·[FROM: 166.111.174.130]
※ 来源:·BBS 水木清华站 smth.edu.cn·[FROM: 166.111.174.130] |
|