Thread Zwei strings vergleichen
(3 answers)
Opened by Enzio at 2014-07-30 17:48
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. Algorithm::Diff) oder, falls weiterhin nur die Anzahl der Änderungen interessant ist, auf einen Algorithmus zur Berechnung der Editierdistanz (siehe z.B. Text::Levenshtein). When C++ is your hammer, every problem looks like your thumb.
|