2012-10-30 72 views
-1

示例文本文件行:如何找到一個字符不同

 
\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

使用哪種工具或語言?另外,這些行必須是連續的嗎?最後,你有什麼嘗試? –

+1

'\ folder-0'和'\ folder_3'相差兩個字符,那麼它們怎麼能在同一個結果集中呢? – hochl

+0

@ hochl我認爲他不是指配對,而只是連續的配對。 –

回答

3

請勿使用正則表達式。

首先定義一個給定兩個字符串(來自文件的行)返回true的函數,它們只有一個字符不同。

然後使用關聯數組收集基於該函數僅通過單個字符不同的行的組。

處理完文件後,關聯數組中包含多行的任何條目都是您想要的結果。

+0

謝謝,一旦我知道我沒有重新發明輪子,我寫了一個腳本來做到這一點。 –

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

相關問題