Freddy Mercury
Enthusiast
Thread Starter
- Mitglied seit
- 15.06.2007
- Beiträge
- 156
Hallo zusammen,
ich möchte aus einem String den längsten Teilstring, der mehr als 1x vorkommt, herausfinden.
Beispiel: In "testtest123" wäre das "test", und er würde 2x vorkommen.
Dazu habe ich ein Perl-Skript gefunden (s.u.) und mir Perl installiert. Wenn ich das Skript starte, erhalte ich allerdings Fehlermeldungen.
Wo im Skript füge ich meinen String ein? Ich habe jetzt 2h lang Perl Tutorials gelesen, verstehe aber den Code einfach nicht.
Danke!
function len_cmp($match1,$match2) {
return $match2[0] - $match1[0];
}
preg_match_all('/(?=((.+)(?:.*?\2)+))/s', $text, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
$match[0] = substr_count($match[1], $match[2]) * strlen($match[2]);
}
usort($matches, "len_cmp");
foreach ($matches as $match) {
echo "($matches[2]) $matches[1]\n";
}
ich möchte aus einem String den längsten Teilstring, der mehr als 1x vorkommt, herausfinden.
Beispiel: In "testtest123" wäre das "test", und er würde 2x vorkommen.
Dazu habe ich ein Perl-Skript gefunden (s.u.) und mir Perl installiert. Wenn ich das Skript starte, erhalte ich allerdings Fehlermeldungen.
Wo im Skript füge ich meinen String ein? Ich habe jetzt 2h lang Perl Tutorials gelesen, verstehe aber den Code einfach nicht.
Danke!
function len_cmp($match1,$match2) {
return $match2[0] - $match1[0];
}
preg_match_all('/(?=((.+)(?:.*?\2)+))/s', $text, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
$match[0] = substr_count($match[1], $match[2]) * strlen($match[2]);
}
usort($matches, "len_cmp");
foreach ($matches as $match) {
echo "($matches[2]) $matches[1]\n";
}