Perl如何在发生另一种模式匹配时停止正则表达式模式匹配?

时间:2011-04-13 19:30:23

标签: regex perl

我有一个模式匹配器代码,如:

#!/usr/bin/perl
use strict;
use warnings;
open(HTML,"<source.html");
my $html = do {local $/; <HTML>};
$html =~ s/\n\ *//g;
while ($html=~m/<OPTION [^>]*>\D*([^<]+)/g){
    print $1;
    print "\n";
}
close(HTML)

我想这样做直到文件然而我想停止并且在循环中断它它看到任何与开头的模式匹配的字符:

</S

我如何使用Perl做到这一点?

2 个答案:

答案 0 :(得分:2)

如果要退出循环,则应使用最后一个命令:

last if ( $pattern ~= /^<\/S/ );

答案 1 :(得分:0)

( my $to_search = $html ) =~ s{</S.*}{}s;
while ($to_search =~ m{<OPTION [^>]*>\D*([^<]+)}g) {
    print("$1\n");
}