regulärer Ausdruck zum Umkehren der Reihenfolge zweier unbekannter, durch Kommas getrennter Wörter

regulärer Ausdruck zum Umkehren der Reihenfolge zweier unbekannter, durch Kommas getrennter Wörter

Ich versuche, mit den regulären Ausdrücken von ReNamer Ordnernamen umzukehren, die Autorennamen verwenden. Sie sind so eingerichtet LastName, FirstNameund ich muss sie in FirstName LastName(ohne Komma) ändern.

In ReNamer wird die Verwendung regulärer Ausdrücke als Ausdruck in einer Zeile und Ersetzen in der zweiten eingerichtet. Ich gehe in diesem Fall davon aus, dass zuerst Eingabe und dann Ausgabe erfolgt. Ich habe mehrere Lösungen von hier aus ausprobiert, aber nichts davon hat funktioniert. Ich verstehe die Grundlagen von regulären Ausdrücken kaum, daher bin ich für jede Hilfe sehr dankbar.

Laut dem Programm zum Umbenennen von Dateien und Ordnern, ReNamer, ist Regex die einzige Option unter mehreren, die das tut, was ich brauche. Ich habe den Vorschlag von jemandem von einer anderen Site ausprobiert. In die Ausdruckszeile habe ich eingegeben und ([^,]*), (.)dann in die Ersetzungszeile \2 \1. Das Ergebnis hat sich Duncan, Davein geändert 2 1.

Antwort1

Ich kenne ReNamer nicht, aber mit der Regex-Logik sollte dies funktionieren:

From: "^([^,]*), (.*)"
To  : "\2 \1"

Erläuterung:

  • initial ^bedeutet „Beginn des Ausdrucks“
  • Die ()Klammern geben Teile des Ausdrucks an, die zu merken sind und bei der Ersetzung als \1und verwendet werden können \2.
  • [^,]*passt zu allen Zeichen bis zum Komma, jedoch nicht einschließlich (das ^bedeutet in diesem Kontext „nicht übereinstimmend“)
  • .*stimmt mit allen verbleibenden Zeichen überein
  • der erste eingeklammerte Ausdruck ist Ihr LastNameund der zweite eingeklammerte Ausdruck ist IhrFirstName

Antwort2

Du solltest das tun:

:%s/\(^.*\,*\).*\(\,.*$\)/\2 \1/g

Denken Sie daran, dass einige Satzzeichen \in VI/VIM vorher hinzugefügt werden müssen.

Ausgabe:

, Vorname Nachname

verwandte Informationen