#regex #perl
#регулярное выражение #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?
Ответ №1:
Если вы хотите выйти из цикла, вам следует использовать последнюю команду:
last if ( $pattern ~= /^</S/ );
Комментарии:
1. Моя проблема в том, что моя первая проверка регулярных выражений удаляет слова, содержащие «</ S», поэтому я должен изменить свой код, выполнив что-то с моим шаблоном в цикле while?
Ответ №2:
( my $to_search = $html ) =~ s{</S.*}{}s;
while ($to_search =~ m{<OPTION [^>]*>D*([^<] )}g) {
print("$1n");
}