我有一个字符串,例如“xxox-x”,我想用它来屏蔽文件中的每一行:
- x 被忽略(或只是设置为已知值)
- o 保持不变
- - 是一个可变长度字段,它将保持其他所有内容不变
因此,针对“deadbeef”掩码“xxox-x”将产生“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;
关于regex - 使用掩码字符串在 Perl 中掩码字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1871092/