Extrahieren und zeigen Sie mithilfe von regulären Ausdrücken aus jeder Zeile in Notepad++ nur das Jahr an.

Extrahieren und zeigen Sie mithilfe von regulären Ausdrücken aus jeder Zeile in Notepad++ nur das Jahr an.

Ich habe solche Saiten

hack SIGN (2005) g$
5 Cm Per Second - Makoto Shinkai Collection (2007)
Abenobashi (2002) gd
Ai City - La Notte Dei Cloni (1986) dfg
AIKA (1997)
Anna Dai Capelli Rossi (1979) £$"£

Ich möchte die Anzeige auf Notepad++

2005
2007
2002
1986
1997
1979

Ich verwende diesen regulären Ausdruck, aber er scheint nicht richtig zu funktionieren.

FINDEN:

\(\b(19|20)\d{2}\b\)

ERSETZEN

r\n\1\1

Aber es gibt mir einen Text wie diesen zurück

hack SIGN r
2020 g$
5 Cm Per Second - Makoto Shinkai Collection r
2020
Abenobashi r
2020 gd
Ai City - La Notte Dei Cloni r
1919 dfg
..

Dieser reguläre Ausdruck funktioniert also nicht wie erwartet

Antwort1

Befolgen Sie die nachstehenden Anweisungen, indem Sie Ctrl+ drücken H.Notizblock++um eine Gruppe von 4-stelligen Zahlen pro Zeile abzugleichen und nur diese Zeichen auszudrucken, was Ihnen die erwarteten Ergebnisse liefert.

  1. Finde was: ^.*?(\d{4}+).*$

    Bildbeschreibung hier eingeben

  2. Ersetzen mit: $1

  3. Suchmodus: Regular expression
  4. Drücken SieReplace All

Ergebnisse

2005
2007
2002
1986
1997
1979

Bildbeschreibung hier eingeben


Weitere Ressourcen

So verwenden Sie reguläre Ausdrücke in Notepad++

Anker

Anker entsprechen einer Position in der Zeile und nicht einem bestimmten Zeichen.

^

Dies entspricht dem Anfang einer Zeile (außer bei Verwendung innerhalb eines Sets, siehe oben).

$

Dies entspricht dem Ende einer Zeile.

Bereiche oder Arten von Zeichen

[^...]

Die Ergänzung der Zeichen im Set.

Übereinstimmungen mit einzelnen Zeichen

., \c

Stimmt mit jedem beliebigen Zeichen überein. Wenn Sie das Kontrollkästchen „. stimmt mit Zeilenumbruch überein“ aktivieren, wird der Punkt dies tatsächlich tun, sodass das „beliebige“ Zeichen über mehrere Zeilen laufen kann. Wenn die Option nicht aktiviert ist, stimmt . nur mit Zeichen innerhalb einer Zeile überein, nicht aber mit den Zeilenendezeichen (\r und \n).

Multiplikationsoperatoren

*

Dies entspricht 0 oder mehr Instanzen des vorherigen Zeichens, so viele wie möglich. Beispielsweise entspricht Sa*m Sm, Sam, Saam usw.

*?

Null oder mehr aus der vorherigen Gruppe, aber mindestens: die kürzeste übereinstimmende Zeichenfolge, statt der längsten Zeichenfolge wie beim „gierigen“ *-Operator. Daher wird m.*?o, angewendet auf den Text margin-bottom: 0;, mit margin-bo übereinstimmen, während m.*o mit margin-botto übereinstimmt.

{n}

Stimmt mit n Kopien des Elements überein, auf das es sich bezieht.

+

Dies entspricht einer oder mehreren Instanzen des vorherigen Zeichens, so viele wie möglich.

Gruppen

(...)

Klammern markieren eine Teilmenge des regulären Ausdrucks. Die Zeichenfolge, die mit dem Inhalt der Klammern übereinstimmt, ( )kann als Rückverweis oder als Teil einer Ersetzungsoperation wiederverwendet werden (siehe unten „Ersetzungen“).

Gruppen können verschachtelt sein.

(?<some name>...), (?'some name'...),(?(some name)...)

Bereiche oder Arten von Zeichen

\d

Eine Ziffer im Bereich 0-9, gleich wie[[:Ziffer:]].


Auswechslungen

$n, ${n}, \n

Gibt zurück, was mit dem Unterausdruck mit der Nummer n übereinstimmt. Negative Indizes sind nicht zulässig.

Antwort2

  • Ctrl+H
  • Finde was:^(?:.*?\(((?:19|20)\d{2})\).*|.*\R)$
  • Ersetzen mit:$1
  • check Umwickeln
  • check Regulärer Ausdruck
  • NICHT PRÜFEN. matches newline
  • Replace all

Erläuterung:

^                   : beginning of line
  (?:               : start non capture group
    .*?             : 0 or more any character but newline, not greedy
    \(              : open parenthesis
      (             : start group 1
        (?:19|20)   : non capture group, 19 or 20
        \d{2}       : 2 digits
      )             : end group 1
    \)              : close parenthesis
    .*              : 0 or more any character but newline
   |                : OR
    .*              : 0 or more any character but newline
    \R?             : any kind of linebreak, optional
  )                 : end non capture group
$                   : end of line

Gegeben sei eine Eingabe wie:

hack SIGN (2005) g$
5 Cm Per Second - Makoto Shinkai Collection (2007)
Abenobashi (2002) gd
Ai City - La Notte Dei Cloni (1986) dfg
AIKA (1997)
Anna Dai Capelli Rossi (1979) £$"£
123456 1234
(123) 4567

Wir haben:

2005
2007
2002
1986
1997
1979

verwandte Informationen