Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 模式匹配是如何使用perl的_Regex_Perl - Fatal编程技术网

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;