我用正则表达式编写了一个小的 Perl 脚本来获取网站的 HTML 组件。
我知道这不是做这种工作的好方法,但我试图测试我的正则表达式技能。
当在 while 循环中使用两种正则表达式模式之一运行时,它会完美运行并显示正确的输出。但是当我尝试在 while 循环中检查两种模式时,第二个模式每次都匹配并且循环无限运行。
我的脚本:
#!/usr/bin/perl -w
use strict;
while (<STDIN>) {
while ( (m/<span class=\"itempp\">([^<]+)+?<\/span>/g) ||
(m/<font size=\"-1\">([^<]+)+?<\/font>/g) ) {
print "$1\n";
}
}
我正在使用示例输入测试上述脚本:
<a href="http://linkTest">Link title</a>
<span class="itempp">$150</span>
<font size="-1"> (Location)</font>
期望的输出:
$150
(Location)
谢谢!任何帮助将不胜感激!