gpt4 book ai didi

regex - 在同一位置查找和替换匹配的字母

转载 作者:行者123 更新时间:2023-11-29 09:18:50 27 4
gpt4 key购买 nike

这是一个正则表达式问题,但我无法在 Wiki 页面上找到适合我案例的选项,所以我决定在这里提问。可能是正则表达式的一个简单的未知选项可以解决我的问题。

我有一个包含多行字符串的日志文件 (a.txt)。我想比较每两行(第一行与第二行,第三行与第四行......)并将匹配的字母(不是字符串)替换为“。”(或任何特殊字符)。

a.txt:

1100110010
1100101100
0011001100
0110101111
.
.
.

结果.txt:

.....1001.
.....01100
.0.10...00
.1.01...11
.
.
.

这可能是两个字符串的异或问题,所以我尝试了这种方法,但需要转换为ASCII,然后才能异或(可能是这种方法不对)。我认为有一种非常简单的方法可以使用 SED/PERL 完成这项工作。任何建议和/或指导表示赞赏。感谢您阅读我的问题。

最佳答案

Perl 使用 bitwise operators :

#!/usr/bin/env perl

use strict;
use warnings;
use v5.10;

while ( !eof(DATA) ) {
chomp( my $line1 = <DATA> );
chomp( my $line2 = <DATA> );

( my $uniq_mask = $line1 ^ $line2 ) =~ s/[^\0]/\xFF/g;

my $uniq1 = $line1;
my $uniq2 = $line2;

for ( $uniq1, $uniq2 ) {
$_ &= $uniq_mask;
s/\0/./g;
}

say for $line1, $line2, $uniq1, $uniq2, '';
}

__DATA__
1100110010
1100101100
0011001100
0110101111

输出:

1100110010
1100101100
.....1001.
.....0110.

0011001100
0110101111
.0.10...00
.1.01...11

关于regex - 在同一位置查找和替换匹配的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48247289/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com