一个关于字符串匹配的问题

一个关于字符串匹配的问题

我想从一个网页文件中找到这个字符串,然后从中分别取出32和23
<p>High: 32° Low: 23°</p>


这样写哪里错了呢?

`wget -O - http://weather.yahoo.com/forecast/CHXX0008_c.html > $file`;
open(FILE, $file) or die "Could not open file $file: $!\n";

$leadspace="  "; #spacing before each high low

$trailspace="   "; #spacing after each high low.

$degree=" ℃"; #give me the degree symbol, not everyone has same locale


while(<FILE>){
            #get the high temp

            (my $high) = /<p>High: (-?\d+)#176; Low: \-?\d+#176;<\/p>/;


            #get the low temp

            (my $low) = /<p>High: \-?\d+#176; Low: (-?\d+)#176;<\/p>/;


            #print the high and low temp for the specified day

            if($high=~/\d+/ && $low=~/\d+/ && ++$count<=$day){print "$leadspace$high$degree/$low$degree$trailspace";}
            elsif($count>=$day){print "\n"; exit;} #don't keep looking if everything has been found

}
晕。。找到原因了,是我马虎了。。。

另外,怎么输出摄氏度的符号?到桌面上之后输出的是乱码(图的右下角位置)





QUOTE:
原帖由 kimux 于 2008-7-10 10:54 发表
晕。。找到原因了,是我马虎了。。。

另外,怎么输出摄氏度的符号?我这里输出的是乱码

将符号复制到程序中就可以了吧
另外,你的high和low可以放在一个正则表达式中求,分别为$1和$2
说实话。。我对Perl并不了解。。

这个天气预报脚本是在网上找的

不过他天气显示的有问题,我就自己改一下。。。能用就行了,HEHE
对了,原来的脚本里他是这样显示符号的

$degree= encode_utf8( "\x{00B0}" );


只不过显示出来的不是摄氏度。。我也不知道是什么符号