Ich habe eine sehr große Datenausgabe in einer TXT-Datei, die folgendermaßen aussieht:
value1="1",value2="2",value3="test3",value4="4"
value1="1",value2="2",value3="anothertest3",value4="4"
value1="1",value2="2",value3="lasttest3",value4="4"
Ich möchte den Wert innerhalb der Anführungszeichen in value3 extrahieren, sodass das Ergebnis folgendermaßen aussieht:
test3
anothertest3
lasttest3
Wie würde ich dabei vorgehen?
Antwort1
- Gehen Sie zu Suchen->Ersetzen.
- SatzFinde wasZu
^value1=".*",value2=".*",value3="(.{10})",value4=".*"$
. - SatzErsetzen mitZu
\1
. - SatzSuchmodusZu
Regular expression
. - Drücken SieAlles ersetzen.
Antwort2
Mit Suchmodus=Regular Expression
Suche nach: ^.*,value3="([^"]*)".*$
Ersetzen durch:\1
Antwort3
Sams Lösung hat bei mir nicht funktioniert.
Für die von Ihnen angegebenen Beispieldaten hat der folgende reguläre Ausdruck funktioniert. Er enthält keine Annahmen bezüglich der Länge, außer dass der Wert kein enthalten kann "
, selbst wenn es maskiert ist (je nach Quelle Ihrer Daten war dies erwähnenswert).
Dies setzt auch nicht voraus, dass ein value1
oder value2
vorangestellt ist. Sie können optional weggelassen werden, oder es können optional zusätzliche oder anderweitig ungeordnete Werte vorhanden sein.
- Suchen -> Ersetzen (oder Ctrl+ h)
- Stellen Sie den Suchmodus aufRegulären Ausdruck
Geben Sie Folgendes ein für denFinde wasFeld
^.*value3="([^"]*)".*$
SatzErsetzen mitZu
$1
- Alles ersetzen