请教一个模式匹配的问题

请教一个模式匹配的问题

我是想从一个专利网站上spider专利的摘要信息。
原来的html代码是
<a href="textdoc?DB=EPODOC&IDX=US2007138131&F=0">
其中IDX=后边的就是我要提取的专利号码($pat_no),然后再将该专利的url($pat_url)也提取出来,Perl代码如下:

sub parse_list
{
        my ($list_content) = @_;
       
        my $pat_url;
        my $last_pat_url;
       
        my $pat_num = 0;
       
while ($list_content =~ m/(textdoc\?DB=EPODOC&IDX=.+F=0)/g){
                $pat_url = 'http://v3.espacenet.com/' . $1;                                       

                if (!($pat_url eq $last_pat_url)){
                        $pat_num++;
               
                        $last_pat_url = $pat_url;

                        $pat_url =~ m/IDX=(\w+)/;

                        my $pat_no = $1;

                        open(f, ">> wp_t_b.txt");
                        select(f);
                        print $pat_no, "\t", $pat_url, "\n";
                        close(f);

                        select(stdout);
                        print $pat_no, "\n";                                       
                }
        }       
       
        现在网站的数据库改了格式,变成如下代码:
        <a href="/publicationDetails/biblio?KC=A&date=20061206&NR=1875321A&DB=EPODOC&locale=en_EP&CC=CN&FT=D">
其中html的代码中&后边都跟了一个“amp;”。
那么我的perl代码该怎么修改啊?我仍旧需要提取专利号码,就是“NR=”后边的数字,并且提取专利的url。
我刚开始学习perl,很着急啊,大家帮帮忙!!!

1.贪婪
2.&不需要html转义
$list_content=~ /date=(\d+)&NR=(\d+)/;
#print "date=$1,NR=$2\n";
#!/usr/bin/perl -w
use strict;
my $str='<a href="/publicationDetails/biblio?KC=A1&date=20070621&NR=2007138131A1&DB=EPODOC&locale=en_EP&CC=US&FT=D">';
foreach (split(/&/,$str)){
    print "$_\n" if(/date=|NR=/);
}
谢谢楼上的几位热心解答,但是问题好像还是没有得到解决,我修改了我的主贴内容,麻烦大家再帮我看看!谢谢了!!!
<a href="/publicationDetails/biblio?KC=A&date=20061206&NR=1875321A&DB=EPODOC&locale=en_EP&CC=CN&FT=D">

你要的结果是下面这样吗?
1875321\thttp://v3.espacenet.com/publicationDetails/biblio?KC=A&amp;date=20061206&NR=1875321A&DB=EPODOC&locale=en_EP&CC=CN&FT=D

谢谢ynchnluiti,结果是你写的那样的,你能帮我想出办法吗?太感谢啦



[Copy to clipboard] [ - ]
CODE:
my %url;
while (<DATA>) {
    while ( /href="(.*?NR=([\d\w]+)[^"]*)"/cg ) {
        my $href = $1;
        my $pat_no = $2;

        $href =~ s/&amp;/&/;
        print "$pat_no\t$href\n" if not defined $url{$href};

        $url{$href} = $pat_no;
    }
}

谢谢ynchnluiti!!!