it-swarm.com.de

So kopieren Sie markierten Text in Notepad ++

Ich habe einen Teil der HTML-Quelldatei, der Zeichenfolgen enthält, die ich mit der Regex-Funktion von Notepad ++ auswählen und gleichzeitig kopieren möchte.

Hier ist ein Teil der Textquelle:

<option value="Performance"
>Performance</option>
<option value="Maintenance"
>Maintenance</option>
<option value="System Stability"
>System Stability</option>

Ich verwende den Regex "[0-9a-zA-Z ]*", um die "value" -Werte zu suchen. Ich habe das Feature auch in der Notepad ++ - Suche ausgewählt, um den gefundenen Text hervorzuheben. Damit das funktioniert, möchte ich nur den markierten Text zur weiteren Verarbeitung in die Zwischenablage kopieren oder ausschneiden. Ich kann diese Funktionalität jedoch nicht in Notepad ++ finden. Ist das einfach nicht möglich oder bin ich zu dumm?

49
Alex

Versuchen Sie es stattdessen:

Beheben Sie zunächst das Problem der Zeilenenden: (Notepad ++ erlaubt keine mehrzeiligen regulären Ausdrücke.)

Suche [Erweiterter Modus]:\r\n> (Oder die Zeilenenden Ihres eigenen Systems)

Ersetzen:>

dann

Suche [Regex-Modus]:<option[^>]+value="([^"]+)"[^>]*>.* 

(Wenn Sie alle Vorkommen von value anstelle der Optionen wünschen, entfernen Sie einfach die führende option).

Ersetzen:\1

Erklärung des zweiten regulären Ausdrucks: 

<option[^>]+     Find a < followed by "option" followed by 
                 at least one character which is not a >

value="          Find the string value="

([^"]+)          Find one or more characters which are not a " and save them
                 to group \1

"[^>]*>.*        Find a " followed by zero or more non-'>' characters
                 followed by a > followed by zero or more characters.

Ja, es analysiert HTML mit einem Regex - Diese Warnungen zutreffend - überprüfen Sie die Ausgabe sorgfältig.

19
Sean Vieira

Ab Notepad ++ 5.9 wurde eine Funktion zum Entfernen nicht markierter Zeilen hinzugefügt, mit der alles entfernt werden kann, was Sie nicht zusammen mit einigen Suchvorgängen wünschen, und ersetzt den anderen Text in jeder Wertzeile.

  1. Verwenden Sie die Funktion Suchen -> Suchen -> Markieren, um jede Zeile zu markieren, die Sie behalten/kopieren möchten, und markieren Sie vor dem Markieren des Textes die Option 'Lesezeichenzeile'
  2. Wählen Sie Suchen -> Lesezeichen -> Nicht markierte Zeilen entfernen
  3. Verwenden Sie Suchen -> Suchen -> Ersetzen, um anderen Text, den Sie nicht behalten möchten, durch nichts zu ersetzen
  4. Speichern Sie den restlichen Text oder kopieren Sie ihn.

Sie können ein ähnliches Verfahren auch über Suchen -> Lesezeichen -> Lesezeichen mit Lesezeichen kopieren ausführen

Technisch gesehen können Sie markierten Text also immer noch nicht kopieren, aber Sie können Zeilen mit markiertem Text als Lesezeichen markieren und dann verschiedene Vorgänge für markierte oder nicht markierte Zeilen ausführen.

88
Colin

Ich füge dies der Vollständigkeit halber hinzu, da dieser Beitrag in den Google-Suchergebnissen hoch liegt.

Sie können eigentlich alles aus einer Regex-Suche kopieren, nur nicht in einem Schritt.

  1. Verwenden Sie Markieren unter Suchen und geben Sie den Regex in Suchen nach ein.
  2. Wählen Sie Lesezeichenzeile und klicken Sie auf Alle markieren.
  3. Klicken Sie auf Suchen -> Lesezeichen -> Lesezeichenzeilen kopieren.
  4. Einfügen in ein neues Dokument.
  5. Eventuell müssen Sie unerwünschten Text aus der Zeile entfernen, der nicht Bestandteil der regulären Ausdrücke war.
22
gschoep

Es wäre ein tolles Feature in Notepad ++. Ich verwende die folgende Technik, um alle Übereinstimmungen aus einer Datei zu extrahieren:

powershell
select-string -Path input.txt -Pattern "[0-9a-zA-Z ]*" -AllMatches | % { $_.Matches } | select-object Value > output.txt

Und wenn Sie nur die eindeutigen Übereinstimmungen in einer sortierten Liste möchten:

powershell
select-string -Path input.txt -Pattern "[0-9a-zA-Z ]" -AllMatches | % { $_.Matches } | select-object Value -unique | sort-object Value > output.txt
7
Fidel

Dies ist ähnlich zu https://superuser.com/questions/477628/export-all-regular-expression-matches-in-textpad-or-notepad-as-a-list .

Ich hoffe du versuchst zu extrahieren:
"Performance"
"Instandhaltung"
"Systemstabilität"

Hier ist der Weg -... Schritt 1/3: Suche öffnen-> Suchen-> Registerkarte Ersetzen, wählen Sie die Optionsschaltfläche Regulärer Ausdruck. Geben Sie in Find what: (\ "[a-zA-Z0-9\s] + \") und in Ersetzen durch:\n\1 und klicken Sie auf Alle Tasten ersetzen .  Before Clicking Replace All

Schritt 2/3: Nach dem ersten Schritt befinden sich Ihre Keywords in den nächsten Zeilen (wie im nächsten Bild gezeigt). Gehen Sie nun zur Registerkarte Mark und geben Sie den gleichen Regex-Ausdruck in Suchen nach: Feld .. ein. Setzen Sie ein Häkchen in die Lesezeichenzeile. Klicken Sie dann auf Alle markieren  Bookmark the lines

Schritt 3/3: Gehe zu Suche -> Lesezeichen -> Nicht markierte Zeilen entfernen.  Remove Unmarked lines

So haben Sie das Endergebnis als unten  Final Result

7
Chetan

Nein, seit Notepad ++ 5.6.2 scheint dies nicht möglich zu sein. Obwohl eine Spaltenauswahl (Alt + Selection) möglich ist, sind Mehrfachselektionen offensichtlich nicht implementiert und werden von der Suchfunktion auch nicht unterstützt.

2
AndiDog

Ich hatte das gleiche Problem. Sie können die Regex-Übereinstimmungen in einer neuen Registerkarte auflisten, jede Übereinstimmung in einer neuen Zeile im PSPad-Editor. Dies ist sehr ähnlich wie in Notepad ++.

Drücken Sie Strg + F, um zu suchen, überprüfen Sie die Regexp-Funktion, setzen Sie den Regex und klicken Sie auf Liste.

0
Jancsik Zsolt

Mit Notepad ist dies nicht möglich, aber HERE'S THE EASY SOLUTION:

Sie benötigen die Freeware Expresso v3.1 http://www.ultrapico.com/ExpressoDownload.htm

Ich habe auf eine andere kostenlose Software zurückgegriffen: Expresso by Ultrapico. 

  1. Nach der Installation gehen Sie auf die Registerkarte "Testmodus". 
  2. Kopieren Sie Ihren REGEX in den Bereich "Reguläre Ausdrücke".
  3. Fügen Sie den gesamten zu durchsuchenden Text in den Bereich "Beispieltext" von Expresso ein.

  4. Klicken Sie auf die Schaltfläche "Match ausführen". Klicken Sie mit der rechten Maustaste in den Bereich "Suchergebnisse" und "Exportieren nach ..." oder "Passenden Text in die Zwischenablage kopieren".

N.B .: Der ursprüngliche Autor ist @Andreas Jansson, wird aber in einem Kommentar versteckt. Da diese Seite in der Google-Suche einen hohen Rang hat, lasse ich sie hier für andere.

0
Khado Mikhal