Thread Zwei strings vergleichen (3 answers)
Opened by Enzio at 2014-07-30 17:48

murphy
 2014-07-30 20:10
#176649 #176649
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Wenn Du nur die Anzahl der nicht übereinstimmenden Stellen haben möchtest, fällt mir da eine hübsche Golflösung ein:
Code (perl): (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/env perl
use 5.012;
use warnings;

my $fix = 'abcdefg';
my $new = 'abcdgrf';

say(($fix ^ $new) =~ tr/\0//c);


Klarer ist aber vermutlich ein Ansatz wie payx ihn wählte :-)

Wenn man aber nicht nur Buchstaben an der gleichen Position in zwei Zeichenketten vergleichen möchte, sondern herausfinden, wo etwas eingefügt, ersetzt oder weggelassen wurde, dann sollte man wohl eher auf einen Diff-Algorithmus zurückgreifen (siehe z.B. CPAN:Algorithm::Diff) oder, falls weiterhin nur die Anzahl der Änderungen interessant ist, auf einen Algorithmus zur Berechnung der Editierdistanz (siehe z.B. CPAN:Text::Levenshtein).
When C++ is your hammer, every problem looks like your thumb.

View full thread Zwei strings vergleichen