То, что я пытаюсь сделать, это открыть файл и прочитать его по строкам.
Как только я нашел то, что ищет мое регулярное выражение, я хочу поместить каждый в массив @accounts
, а также распечатать их на моем экране.Perl File Reading Line By Line (RegEx)
Хотя я не получаю никакого результата. Я должен сделать здесь простую ошибку?
#!/usr/bin/perl
use strict;
use warnings;
my $line;
my $file;
my $start;
my $end;
my @match;
my @accounts;
print "Enter the file name (example: file.txt): ";
chomp ($file = <STDIN>);
open FILE, $file or die "Cannot open $file read :$!";
while ($line=<FILE>) {
$start = '">';
$end = '</option>';
@match = ($line =~ /$start(.*?)$end/g);
foreach (@match)
{
push @accounts, $_;
print " $_\n ";
}
}
Хорошо спасибо я попробую это. Дело в том, что я использовал это регулярное выражение, потому что я не был уверен в том, как это сделать: Фактическое регулярное выражение - это что-то вроде опции value = "55"> hello , хотя дело в каждой строке, что 55 - это другое number.how я бы получил привет от этого? – n0de
Ну, тогда разместите строку в файле данных и опишите, что вы хотите сопоставить. – 7stud
Если вы пытаетесь сопоставить текст только с тегами опций, вы можете использовать регулярное выражение следующим образом://x. Но, как правило, существуют синтаксические анализаторы html/xml, которые обрабатывают все сложные регулярные выражения и специальные случаи для вас, поэтому вы должны их использовать, например. HTML :: Parser. – 7stud