我有一个像’xxox-x’这样的字符串,我想屏蔽文件中的每一行,如下所示:
> x被忽略(或只是设置为已知值)
> o保持不变
> – 是一个可变长度字段,可以保持其他所有内容不变
因此掩盖’xxox-x’对’deadbeef’会产生’xxaxbeex’
与’deadabbabeef’相同的面具’xxox-x’会产生’xxaxabbabeex’
我怎么能简洁地使用s运算符呢?
解决方法
$mask =~ s/-/'o' x (length $str - length $mask)/e; $str =~ s/(.)/substr($mask,pos $str,1) eq 'o' ? $1 : 'x'/eg;