2016-09-06 3 views
1

Ich habe Textzeilen nach dem gleichen Format:Swap Text um ein Zeichen

Title1 : Text1 Title2 : Text2

Wie kann ich den Text auf beiden Seiten des : auf die andere Seite wechseln? Wie:

Text1 : Title1 Text2 : Title2

kann ich ein kleines Skript schreiben, dies zu tun, aber ich habe mich gefragt, ob es einen schnelleren Weg ist es mit Regex zu tun, eine in der Funktionalität oder jede andere Magie gebaut?

+0

Gibt es führende/nachgestellte Leerzeichen? Wenn ja, benutzen Sie '^ (\ h * \ w +) (\ h *: \ h *) (\ w + \ h *) $' -> '$ 3 $ 2 $ 1 'Regex-Ersatz. –

+0

@ WiktorStribiżew, kann keinen Text finden. Lassen Sie mich Ihnen mehr Details über die Linien geben. Sie sind alle in diesem Format: 'Homepage (homepage): http: // www.example.com /' – Leustad

+2

Aha, das ist ein anderer Kessel Fisch. Verwenden Sie '^ ([^ \ r \ n:] +) (: \ h *) (. *) $' Und verwenden Sie denselben Ersatz. Oder^^ ([^ \ r \ n:] +) (: \ h *) ([^: \ r \ n] +) $ ' –

Antwort

1

können Sie

^([^\r\n:]+)(:\h*)(.*)$ 

oder

^([^\r\n:]+)(:\h*)([^:\r\n]+)$ 

mit $3$2$1 Ersetzen verwenden, in denen die $n mit den einfangenden Gruppen erfasst Rückreferenzierungen auf die Werte sind. Die Gruppen werden automatisch in der Reihenfolge nummeriert, in der sie im Muster erscheinen.

Einzelheiten:

  • ^ - Zeilenanfang
  • ([^\r\n:]+) - Gruppe 1 später verwiesen als $1 ein oder mehr Zeichen außer CR, LF Erfassung und Kolon
  • (:\h*) - Gruppe 2 Erfassen eines Doppelpunkts und null oder mehr horizontaler Leerräume
  • ([^:\r\n]+) -Gruppe 3 referenziert als $3 später. Siehe oben.
  • $ - Ende der Zeile.
0

Schritt 1: Halten Sie die Alt-Taste auf der Tastatur und markieren Sie die dritte Spalte, d. H. Text1. Dies wird die gesamte 3 Spalte auswählen.

Schritt 2: Klicken Sie mit der rechten Maustaste und wählen Sie "Ausschneiden" und dann Einfügen vor der ersten Spalte.

Schritt 3: Halten Sie die Alt-Taste auf der Tastatur gedrückt und markieren Sie die Spalte ":".

Schritt 4: Klicken Sie mit der rechten Maustaste und wählen Sie "Ausschneiden" und dann Einfügen zwischen der 1. und 2. Spalte.

+0

Es gibt keine Spalten. Das sind Texte in Zeilen. – Leustad

+0

Wenn es keine Spalten gibt, sollte es noch funktionieren.Haben Sie versucht, die Alt-Taste gedrückt und markieren den Text nach dem ':'? –

+0

Ich weiß, was Sie versuchen zu tun.Diese Zeilen haben unterschiedliche Länge, daher kann ich sie nicht auswählen. – Leustad