2017-06-07 3 views
2

Ich versuche, Zeichenfolgen mit Regex in Notepad ++ zu erfassen und zu ersetzen, aber das Ergebnis ist nicht wie erwartet. Die Datenbank wird wie folgt formatiert:Wie zeichne und ersetze Zeichenfolgen mit Regex in Notepad ++

(602, '0602', '[{"id":"9","value":""},{"id":"1","value":"1"}]'), 
(1644, '0164', '[{"id":"9","value":""},{"id":"1","value":"3"}]'), 
(1311, '0131', '[{"id":"9","value":""},{"id":"1","value":"100"}]'), 
(1321, '0132', '[{"id":"9","value":""},{"id":"1","value":"150"}]') 

Die Aufgabe Spalte zu erfassen ist und Platz 2 (Werte 0602, 0164, 0131, 0131) und als Wert von id 9. Zum Beispiel einzufügen, muss Endergebnis sein dies wie:

(602, '0602', '[{"id":"9","value":"0602"},{"id":"1","value":"1"}]'), 
(1644, '0164', '[{"id":"9","value":"0164"},{"id":"1","value":"3"}]'), 
(1311, '0131', '[{"id":"9","value":"0131"},{"id":"1","value":"100"}]'), 
(1321, '0132', '[{"id":"9","value":"0132"},{"id":"1","value":"150"}]') 

ich mit dieser Regex in Notepad ++ versuchen - Suchen:

(, '.*)("id":"9","value":"") 

ersetzen:

($1)("id":"9","value":"$1") 

Das Ergebnis ist in der Nähe, aber nicht das, was ich brauche. Bitte, hilf mir, wenn du die richtige Antwort kennst. Vielen Dank im Voraus.

Antwort

3

können Sie unter Regex verwenden, um die Teile der Zeichenfolge zu erfassen und durch den zweiten Spaltenwert ersetzen

^(\(\d+,\s*.*?(\d+).*?value":).*?([,}]) 

Und \1"\2"\3 als Ersatzteil verwenden.

Live Demo on RegEx101

Erläuterung:

  1. ^: Beginn der Linie
  2. \(: Spiel ( wörtliche
  3. \d+,\s*: Match Ziffer/s durch Komma und eine beliebige Anzahl von Leerzeichen gefolgt
  4. .*?: alles passt die folgende Bedingung
  5. (\d+) zu erfüllen: Wer passt zu einer oder mehreren Ziffern und fügen Sie sie in erfassten Gruppe
  6. .*?value":: Match bis value"
  7. ([,}]): Wer passt entweder , oder }

Die Erfasste Gruppe \1 enthält die Zeichenfolge bis value":, "\2" wird die Nummer in der zweiten Spalte in doppelte Anführungszeichen enthalten und \3 wi ll enthalten die letzten , oder }.

+0

Seien Sie vorsichtig, Sie vermissen das Zitat nach dem Wert in der Ersetzung. – Lery

+0

@Lery Danke. Ich habe die Antwort aktualisiert. :) – Tushar

+0

@Tushar, vielen Dank für die Lösung und für die Erklärung. Ich werde es sofort versuchen. –

Verwandte Themen