2016-08-13 5 views
0

Ich habe lange Liste von zwei Zeichenfolge in jeder Zeile, numerische Zeichenfolge und alphanumerische Zeichenfolge (die in jedem rohen unterschiedlicher Länge sind), dass ich (Schalter) Position ändern möge:Regex, um Wörter zu wechseln?

010110,file_1.txt 
0120100,file_11.txt 

Um dies zu haben:

file_1.txt,010110 
file_11.txt,0120100 

Die zweite Zeichenfolge enthält auch Punkte und Unterstriche, wie im obigen Beispiel. Ich habe versucht, Regex, dass ich zuvor für ähnliche Aufgabe verwendet, aber es funktioniert nicht, ich versuchte in Notepad ++ und Powergrep.

([^_]*),(.*) 

Ersetzen durch:

\2_\1 

dass regex Versuchte (mit Variationen), aber haben Ergebnis nicht.

+1

Warum gibt es einen Unterstrich in Ihrer Regex und ersetzen Strings? – Bohemian

Antwort

4

ich tun würde:

  • Suchen nach: ^([^,]+),(.+)$
  • Ersetzen durch: $2,$1
  • Alle ersetzen
1

Verwenden widerstreb quantifier *?:

Find: ^(.*?),(.*) 
Repl: $2,$1 

.*? passt so wenig wie möglich.

+0

Die zweite Zeichenfolge scheint keine Kommas zu enthalten, daher sollte dies keinen Unterschied machen. – Rawling

Verwandte Themen