首页 > 解决方案 > Perl 替换简化

问题描述

我正在处理一些字符串解析,我想知道是否有办法用一个替换这 11 行,我知道我可以使用 \d 来选择一个数字,但是有没有办法在替换字符串中使用相同的数字?

提前谢谢

$msgPayload =~ s/:\s?-/:"-/g;
$msgPayload =~ s/:\s?1/:"1/g;
$msgPayload =~ s/:\s?2/:"2/g;
$msgPayload =~ s/:\s?3/:"3/g;
$msgPayload =~ s/:\s?4/:"4/g;
$msgPayload =~ s/:\s?5/:"5/g;
$msgPayload =~ s/:\s?6/:"6/g;
$msgPayload =~ s/:\s?7/:"7/g;
$msgPayload =~ s/:\s?8/:"8/g;
$msgPayload =~ s/:\s?9/:"9/g;
$msgPayload =~ s/:\s?0/:"0/g;

标签: regexperl

解决方案


$msgPayload =~ s/:\s?([-\d])/:"$1/g;

括号创建一个“捕获组”,$1在替换模式中表示第一个捕获组的内容。


推荐阅读