Jalara Studio

veröffentlicht am

Doppelte Wörter im Text finden

# # #


Doppelte Wörter lassen sich in einem Text, unabhängig davon ob das doppelte Wort in der nächsten Zeile steht, 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 (Wortgrenze), die Zeichen \w+ suchen mindestens einen Buchstaben, eine Ziffer oder einen Unterstrich, die Zeichen \s+ suchen mindestens eine Zeichenklasse, darunter Leerzeichen, Tabs, 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. Der umgekehrte Schrägstrich (engl. backslash) ist ein Escapezeichen, das entweder das darauf folgende Zeichen (z.B. b) als ein spezielles Sprachelement kennzeichnet (z.B. \b) oder einem speziellem Zeichen (z.B. +) die Bedeutung entzieht (z.B. \+).

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 bzw. + 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 der Inhalt in WordPress nicht nur manuell im Editor strukturiert werden kann, sondern die Strukturierung mit HTML auch automatisch mit Hilfe der WordPress-Funktion wpautop3 erfolgt, indem diese Absätze mit dem entsprechenden <p>-Tag markiert. Das bedeutet, dass z.B. eine Ausgabe wie „<p>und</p><p>und</p>“ mit dem genannten Regex nicht als doppelte Worte gefunden werden.
Links

Buchempfehlung

Anzeige | Affiliate-Link*

Möchtest du mehr über reguläre Aus­drücke erfahren, sei dir das 560 Seiten starke Standard­werk Reguläre Aus­drücke von Jeffrey E. F. Friedl empfohlen.