Wählen Sie die letzten 5 Wörter eines Absatzes in Regex

Wählen Sie die letzten 5 Wörter eines Absatzes in Regex

Ich möchte die letzten 5 Wörter jedes Absatzes in einem Dokument abgleichen. Ich verwende Notepad++ und auch Adobe InDesign GREP

Beispieldaten

Hier finden Sie Übungen zum Üben Ihrer Lesefähigkeiten. Durch das Lesen verbessern Sie Ihr Sprachverständnis und erweitern Ihren Wortschatz.

Die Selbstlernlektionen in diesem Abschnitt sind nach Englischniveaus auf Grundlage des Gemeinsamen Europäischen Referenzrahmens für Sprachen (GER) geschrieben und organisiert. Es gibt verschiedene Textarten und interaktive Übungen, die die Lesefähigkeiten trainieren, die Sie benötigen, um in Ihrem Studium erfolgreich zu sein, im Beruf voranzukommen und in Ihrer Freizeit auf Englisch zu kommunizieren.

Machen Sie unseren kostenlosen Online-Englischtest, um herauszufinden, welches Niveau Sie wählen sollten. Wählen Sie Ihr Niveau, von Englischniveau A1 (Grundstufe) bis Englischniveau C1 (Fortgeschritten), und verbessern Sie Ihre Lesefähigkeiten in Ihrem eigenen Tempo, wann immer es Ihnen passt.

Ich habe diesen Code geschrieben, der nur das letzte Wort auswählt. Selbst wenn ich 5 in 3 ändere, wird immer noch nur das letzte Wort ausgewählt.

(\H*){5}(?=$)

Antwort1

Lassen Sie uns zunächst Ihren regulären Ausdruck erklären:

  • (\H*){5}stimmt 5 Mal mit 0 oder mehr nicht horizontalen Leerzeichen überein; es stimmt mit einem einzelnen Wort überein, das mindestens 0 oder 5 oder mehr Zeichen lang ist.
  • (?=$)macht keinen Sinn, Sie möchten verwenden $, das reicht.

Der reguläre Ausdruck, den Sie verwenden sollten, ist:(?:\h\H+){5}$

  • (?:\h\H+){5}# 1 horizontales Leerzeichen, gefolgt von 1 oder mehreren nicht horizontalen Leerzeichen, muss 5 Mal vorkommen
  • $ # Ende der Linie

Wenn Sie das Leerzeichen vor dem ersten Wort nicht abgleichen möchten, verwenden Sie:

(?:\H+\h){4}\H+$

verwandte Informationen