-1

示例文本文件:

\文件夹_0
\文件夹-0
\文件夹-1
\文件夹'2
\文件夹-3
\文件夹_3
\文件夹'3
\文件夹,3
\文件夹,4

您如何找到与一个字符相同的行。例如:

\文件夹_0
\文件夹-0
\文件夹-3
\文件夹_3
\文件夹'3
\文件夹,3
4

2 回答 2

3

不要使用正则表达式。

首先定义一个函数,给定两个字符串(文件中的行)返回 true,它们仅相差一个字符。

然后使用关联数组来收集基于该函数仅由单个字符不同的行组。

处理文件后,关联数组中包含多行的任何条目都是您想要的结果。

于 2012-10-30T15:52:06.423 回答
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}};

在此处测试此代码。

于 2012-10-30T19:04:59.443 回答