本文介绍了使用掩码字符串在 perl 中掩码字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个像 'xxox-x' 这样的字符串,我想用它来屏蔽文件中的每一行:
I have a string such as 'xxox-x' that I want to mask each line in a file against as such:
- x 被忽略(或只是设置为已知值)
- o 保持不变
- - 是一个可变长度字段,它将保持其他所有内容不变
因此,针对 'deadbeef' 屏蔽 'xxox-x' 将产生 'xxaxbeex'
therefore mask 'xxox-x' against 'deadbeef' would yield 'xxaxbeex'
针对 'deadabbabeef' 的相同掩码 'xxox-x' 将产生 'xxaxabbabeex'
the same mask 'xxox-x' against 'deadabbabeef' would yield 'xxaxabbabeex'
我怎样才能最好地使用 s 运算符简洁地做到这一点?
How can I do this succinctly preferrably using s operator?
推荐答案
$mask =~ s/-/'o' x (length $str - length $mask)/e;
$str =~ s/(.)/substr($mask, pos $str, 1) eq 'o' ? $1 : 'x'/eg;
这篇关于使用掩码字符串在 perl 中掩码字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!