Jalara Studio

Doppelte Wörter im Text finden

# # #


Doppelte Wörter lassen sich, unabhängig davon, ob das doppelte Wort in der nächsten Zeile steht, in einem Text mit dem regulären Ausdruck (engl. regular expression; kurz RegExp, Regex) #\b(\w+)\s+\1\b# finden.

Erklärung des regulären Ausdruckes #\b(\w+)\s+\1\b#

Das Metazeichen \b sucht eine leere Zeichenkette am Wortanfang oder am Wortende, die Zeichen \w+ suchen mindestens einen Buchstabe, eine Ziffer oder einen Unterstrich, die Zeichen \s+ suchen mindestens eine Zeichenklasse, darunter Leerzeichen, Tab, Newline u.s.w und das Metazeichen \1 ist eine sogenannte Rückwärtsreferenz, die auf den im ersten Klammerpaar gefundenen Text zurückgreift.

Die Rauten wurden lediglich als Spezialzeichen ausgewählt, um den regulären Ausdruck als solchen zu markieren.

Adobe InDesign

In Adobe InDesign lässt sich der reguläre Ausdruck \b(\w+)\s+\1\b (ohne Angabe der Spezialzeichen) im Fenster Suchen/Ersetzen innerhalb des Tabs GREP eingeben und suchen. Das Fenster lässt sich mit dem Tastaturkürzel Strg + F b. z. w. + F öffnen.

WordPress

In WordPress lässt sich die Funktion preg_match()1 zum Suchen des regulären Ausdruckes #\b(\w+)\s+\1\b#2 verwenden und die Funktion preg_replace() zum manipulieren der Fundstelle. Folgender Codeschnipsel, eingefügt in die Datei functions.php im (Child-)Theme oder in ein seitenspezifisches Plugin, würde die doppelten Worte für den eingeloggten Nutzer im Frontend rot markieren.

function check_double_words( $content ){
    if ( preg_match( '/\\b(\\w+)\\s+\\1\\b/', $content ) && is_user_logged_in() ) {
        $content = preg_replace( '/\\b(\\w+)\\s+\\1\\b/', '<span style="color:red">$1</span> $1', $content);
    }
    return $content;
 }
 add_filter( 'the_content', 'check_double_words' );

Hinweis: Beachte, dass die Funktion wpautop3 in WordPress den Inhalt anpasst, indem diese die entsprechenden HTML-Tags einfügt. Das bedeutet, dass eine Ausgabe wie „<p>und</p><p>und</p>“ mit dem genannten Regex nicht als doppelte Worte gefunden werden.

Buchtipp

Möchtest du mehr über reguläre Ausdrücke erfahren, sei dir das Standardwerk Reguläre Ausdrücke von Jeffrey E. F. Friedl empfohlen.4

Links