2016-11-17 8 views
2

Ich habe eine Datei, die Datensätze wie diese enthält:Wie das Ergebnis eines regulären Ausdrucks invertieren

1 "The number one" 0.1 111 "one" .1 "uno" "UNO!" "#ONE" 
2 "El numero dos" 2.0 222 "The number two" 2.02 "two" "TWO!" "#DOS" 

ich die Räume zwischen Zahlen und Strings mit Kommas ersetzen müssen diese Datei als Ergebnis haben:

1,"The number one",0.1,111,"one",.1,"uno","UNO!","#ONE" 
2,"El numero dos",2.0,222,"The number two",2.02,"two","TWO!","#DOS" 

ich einen regulären Ausdruck erstellt, die das Gegenteil der Fall ist, wird es die Zahlen und Strings:

(?:\"[ !\x23-\xFF]*\"|[\d.]) 

Wie kann ich das Ergebnis meines regulären Ausdrucks invertieren? Kannst du mir helfen, einen regulären Ausdruck zu erstellen, der genau das tut, was ich brauche?

UPDATE 1

Die Datei Sonderzeichen-Variable enthalten kann, wird in Zeichenfolgen und der Reihenfolge der Zeichenkette und Ziffern (dezimal kann sein).

+1

@RomanPerekhrest Nur passende Räume alleine werden hier nicht funktionieren, weil Kaz nicht wa ist z. B. um die Leerzeichen zu berühren, die sich innerhalb von in Anführungszeichen gesetzten Strings befinden. –

Antwort

0

In Notepad ++ die folgenden Werke:

Suche:

("|\d)\s("|\d) 

ersetzen:

$1,$2 
+0

Was passiert, wenn eine Zeichenfolge nach einer anderen Zeichenfolge vorhanden ist? Like: '" uno "" one "' –

+0

Ich aktualisierte meine Antwort mit einer Alternative, die besser alle Möglichkeiten handhabt. –

Verwandte Themen