我需要編寫一個腳本,執行以下操作:Perl的正則表達式:非貪婪
$ 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返回!」
我該如何解決這個問題?
不確定你的意思。輸出是否高於你所得到的或者你想得到的結果?你想讓'a'大寫還是不? – jcaron