Perl, как остановить сопоставление с регулярным выражением, когда происходит другое сопоставление с образцом? - PullRequest
1 голос
/ 13 апреля 2011

У меня есть код соответствия шаблону как:

#!/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 ]

2 голосов
/ 13 апреля 2011

Если вы хотите выйти из цикла, вы должны использовать последнюю команду:

last if ( $pattern ~= /^<\/S/ );
0 голосов
/ 14 апреля 2011
( my $to_search = $html ) =~ s{</S.*}{}s;
while ($to_search =~ m{<OPTION [^>]*>\D*([^<]+)}g) {
    print("$1\n");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...