示例文本文件:
\folder_0 \folder-0 \folder-1 \folder'2 \folder-3 \folder_3 \folder'3 \folder,3 \folder,4
如何找到同一个条形的一行字符。例如:
\folder_0 \folder-0 \folder-3 \folder_3 \folder'3 \folder,3
答案 0 :(得分:3)
不要使用正则表达式。
首先定义一个给定两个字符串(文件中的行)返回true的函数,它们只有一个字符不同。
然后使用关联数组来收集仅基于该函数的单个字符不同的行组。
处理完文件后,关联数组中包含多行的任何条目都是您想要的结果。
答案 1 :(得分:1)
一种可能的方式......(在Perl中)......
@m = (m/[\s\S]*?(?:^|\n)(?=(.*?)(.)(.*?)(?:\n|$)(?:[\s\S]*?\n|)(\1.\3)(?:\n|$))/g);
@p = ();
while ($#m > 0) {
($a, $b, $c, $d) = (shift(@m), shift(@m), shift(@m), shift(@m));
push(@p, ("$a$b$c", $d));
}
@p = keys %{{map{$_ => 1} @p}};
测试此代码 here 。