Regex 模式匹配是如何使用perl的
我有变量Regex 模式匹配是如何使用perl的,regex,perl,Regex,Perl,我有变量a:b:ca:b:dc:d:e,我需要将输出显示为a-ba-bc-d 我尝试以下代码 $res="A:B:C A:B:D C:D:E"; $res=~s/\:/\-/g; $res=~s/..$//mgs; print "$res\n"; 但是我没有收到输出这是您要求的 use strict; use warnings; my $res = "\nA:B:C \nA:B:D \nC:D:E"; my @fields = map { join '-', (split /:/)[0
a:b:ca:b:dc:d:e
,我需要将输出显示为a-ba-bc-d
我尝试以下代码
$res="A:B:C A:B:D C:D:E";
$res=~s/\:/\-/g;
$res=~s/..$//mgs;
print "$res\n";
但是我没有收到输出这是您要求的
use strict;
use warnings;
my $res = "\nA:B:C \nA:B:D \nC:D:E";
my @fields = map { join '-', (split /:/)[0,1] } split ' ', $res;
$res = "@fields\n";
print $res, "\n";
输出
A-B A-B C-D
A-B A-B C-D
或者你也可以使用
regex匹配
#!/usr/bin/perl -w
use strict;
my $res="A:B:C A:B:D C:D:E";
my @arr = split(/ /,$res);
my $new = "";
for(@arr) {
/^([a-zA-Z]):([A-Za-z])/;
$new .= $1."-".$2." ";
}
chop $new;
print $new;
输出
$res=“A:B:C A:B:D C:D:E”;
$res=~s/(\w):(\w):\w/$1-2/g;
#$res
$res = "A:B:C A:B:D C:D:E";
$res =~ s/(\w):(\w):\w/$1-$2/g;
# $res <-- A-B A-B C-D
use strict;
use warnings;
$res = "A:B:C A:B:D C:D:E";
$res =~ s{([a-z]):([a-z]):[a-z]}{$1-$2}ig;