regex - 使用掩码字符串在 Perl 中掩码字符串

标签 regex perl

我有一个字符串,例如“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/

相关文章:

ios - RegEx:如何在 NSPredicate 中使用正则表达式?

perl - 如何在催化剂应用程序上获取 Google OAuth?

perl - 在 Ubuntu 8 上将 Perl v5.8 升级到 Perl v5.10

perl - 如何在 Dockerfile 中运行 pleenv/rbenv?

unit-testing - 如何在 thefile.pl 中模拟函数而不是模块

perl - 安装 Net/SSH/Perl.pm

php - 检查字符串是否为整数(包括负数) PHP

regex - 在 clojure 中表示图形

python - 尝试使用正则表达式捕获特定模式 (Python 3.4)

Python 正则表达式 - re.search() 与 re.findall()