当我有一个包含多个连字符的字符串时,我似乎能够找到(唯一)所需的值,但为什么有多个输出?我想用连字符完全报告匹配的字符串。我已经包含了输出可能是什么,以及重建字符串的方法,但这种方法似乎是不必要的工作。
my $string = "phonenumber123-456-7890";
my @secondStrings = $string =~ m/(\d+)-(\d+)-(\d+)/g;
foreach (@secondStrings){
print $_, "\n";
}
if ($string =~ m/(\d+)-(\d+)-(\d+)/g){
print $1."-".$2."-".$3, "\n";
}
答案 0 :(得分:2)
我相信您只想将整个电话号码(123-456-7890)放入1个捕获组中,此时您正在使用3个。
my ($number) = $string =~ m/(\d+-\d+-\d+)/g;
可以在此处找到进一步阅读:http://perldoc.perl.org/perlre.html#Capture-groups