2016-08-06 13 views
-1

Ich möchte eine Regex für Notepad ++, die die Zeile unten durch ein Leerzeichen ersetzen soll.Notepad ++ Regex zum Suchen und Ersetzen

[ 
    "product": [ 
     "573431ha-c146-4114-aed9-12ade154e359", 
     "06958d7d-5f00-4130-9436-2b099918fc47" 
    ], 
    "id": "0438c966-e9h1-4457-b8e6-e02h890dc366", 
] 

Ich habe bereits versucht "id"="([\w]+|[\w])", aber es erkennt nur alphanumerische Zeichen (wie "acdB233"), aber nichts einschließlich Interpunktion (wie "fffdfd-7").

Antwort

1

Die Regex Sie suchen (vorausgesetzt, Sie nur den "id" Parameter ersetzen möchten)

"id":\s*("[\w\-]+") 

Es ist auf, was der Wert ist, der Parameter werde Gruppe und wird sowohl „Wort“ Zeichen übereinstimmen (alphanumerische Zeichen) und Bindestriche, wie in Ihrem Beispiel.

Für die "product" Parameter, es ist ein wenig komplizierter - so etwas wie

"product":\s*(\[\n?\s*[\w\n\s\-,"]+\n?\s*\]) 

Die Gruppe in dem zweiten regex wird die eckigen Klammern um die Werte in "product" entspricht. Wenn Sie die beiden Einzelwerte in "product" ersetzen möchten, gehen Sie mit so etwas wie dies:

"product":\s*\[\n?\s*((?:["\w\-]+,?\n?\s*)+)\] 

Oder vielleicht einfach mehr,

("(?:\w-)+\w+") 

der alle alphanumerischen-mit-dash übereinstimmen Elemente Dein JSON-Text.

Sie können sich über Regexes (und wie man sie selbst erstellt) here.

+0

cool seine Arbeit was ist mit den "Produkt" -Parametern. –

+0

"Produkt": \ s * \ [\ n? (? :("[\ w \ -] +"),? \ N?) + \] Und "Produkt": \ s * (\ [[\ w \ n \ s \ -, "] \]) funktioniert nicht –

+0

Behoben, mein Fehler. Einige Leerzeichen/Zeilenumbrüche wurden vergessen. –