Мне нужно написать скрипт, который выполняет следующие действия:Perl Regex: нежадным
$ cat testdata.txt
this is my file containing data
for checking pattern matching with a patt on the back!
only one line contains the p word.
$ ./mygrep5 pat th testdata.txt
this is my file containing data
for checking PATTERN MATCHING WITH a PATT ON THe back!
only one line contains the p word.
я смог напечатать строку, которая исправленный с «а» капитализируется, а также. Я понятия не имею, как взять только то, что нужно.
Я уже возился (ниже мой сценарий до сих пор), и все, что мне удается вернуть, это часть «PATT ON TH».
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
use Data::Dump 'pp';
my ($f, $s, $t) = @ARGV;
my @output_lines;
open(my $fh, '<', $t);
while (my $line = <$fh>) {
if ($line =~ /$f/ && $line =~ /$s/) {
$line =~ s/($f.+?$s)/$1/g;
my $sub_phrase = uc $1;
$line =~ s/$1/$sub_phrase/g;
print $line;
}
#else {
# print $line;
#}
}
close($fh);
который возвращает: «для проверки соответствия рисунка с помощью PATT ON THE back!»
Как исправить эту проблему?
Не уверен, что вы имеете в виду. Является ли выход выше того, что вы получаете, или того, что вы хотите получить? Вы хотите, чтобы 'a' был капитализирован или нет? – jcaron