Hello,
Dank dem kleinen Tool Regexbuddy und einer Online-Doku zu regulären Ausdrücken habe ich herausgefunden, das ein Aufruf von preg_replace mit dem regulären Ausdruck \b[a-zA-Z0-9]*international[a-zA-Z0-9]*\b Wörter ersetzen würde, die international enthalten.
Soweit war ich im Prinzip schon in https://forum.selfhtml.org/?t=163670&m=1065915
Hier nochmal das Testprogramm dazu;
<?php ### preg_replace_highlight.php ###
$_text = array();
#$_text[] = "In internationalem Flair fand das letzte internationale Self-Treffen statt";
$_text[] = 'Haustüren sind breiter als normale Türen.';
$_text[] = 'Das hohe Baumhaus schwankt im Wind.';
$_text[] = 'Die Adresse ist ron@hausieren.org.';
$_text[] = 'Ich sitze im Hausboot, hier unten am River.';
$_text[] = 'Er blickte durch die Glashaustür direkt ins Bad.';
$_text[] = 'Hier ist Betteln und Hausieren verboten.';
$_text[] = 'Für die Jacht gab es ein eigenes Bootshaus.';
$such = "haus";
foreach($_text as $text)
{
#$pattern = '@\b([^ ]*' . $such . '[^ ]*)\b@ui';
#$pattern = '@\b([^ ]*' . $such . '.*)\b@ui';
#$pattern = '@.*?([^ ]*' . $such . '[^ ]*).*?@ui';
#$pattern = '@(\b.*?'.$such.'.*?\b)@ui';
$pattern = '@\b([a-zA-Z0-9]*'.$such.'[a-zA-Z0-9]*)\b@ui';
$replace = '<span class="highlight">${1}</span>';
$text = preg_replace($pattern, $replace, $text);
echo htmlspecialchars($pattern)."<br />\n";
echo $text . "<br />\n";
}
?>
Leider funktionieren die alle nicht und ich finde auch den Denkfehler nicht... :-((
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)
