使用掩码字符串在 perl 中掩码字符串 [英] Masking a string in perl using a mask string

查看:38
本文介绍了使用掩码字符串在 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 中掩码字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆