In Notepad ++ finde ich das n-te Vorkommen einer Zeichenkette

8

Ich habe eine riesige Textdatei, in der Datensätze durch die Zeichenfolge MSH identifiziert werden.

Ich muss den 200. Rekord finden. Ich hoffe, dass es einen regulären Ausdruck gibt, den ich in Notepad ++ verwenden kann, der es mir ermöglichen würde, das 200. Vorkommen der Zeichenfolge MSH zu finden.

    
Cimmaron Holman 14.01.2012, 17:05
quelle

1 Antwort

9

Wenn Ihre Datei nur ein riesiger Einzeiler ist, der durch die Zeichenfolge "MSH" begrenzt ist, können Sie dies in einem regulären Ausdruck finden.

Stellen Sie jedoch sicher, dass sich der Cursor am Anfang der Datei befindet, oder suchen Sie einfach nach dem nächsten 200sten Datensatz von dem Sie gestartet haben!

Finde:

  

((. *?) MSH) {199}

Dies sollte die ersten 199 Datensätze markieren, so dass der nächste unmarkierte Datensatz der 200ste ist.


ODER, nimm es ein bisschen weiter!
Stellen Sie in einem regulären Ausdruck find replace erneut sicher, dass sich der Cursor am Anfang der Datei befindet.

Finde:

  

((. *?) MSH) {199} ((. *?) MSH {1}). *

Ersetzen:

  

$ 3

Sollte den gesamten Inhalt des Fensters nur durch den 200. Datensatz ersetzen.

N.B: Dies setzt voraus, dass die Zeichenfolge "MSH" nicht Teil der Datensätze in der Datei ist.


Als Fußnote bezweifle ich stark, dass dies bei einer großen Datei schnell geht. Scripting ist mit ziemlicher Sicherheit eine bessere Option. Oder möglicherweise sogar in Excel zu löschen und Text-zu-Spalten zu verwenden.

    
BunjiquoBianco 29.05.2012 16:33
quelle

Tags und Links