Wort finden / ersetzen: Mit Leerzeichen Platz für die Postleitzahl hinzufügen

2286
Mark

Ich möchte mit dem "Suchen und Ersetzen" -Dialog in Microsoft Word 2003 eine Liste von Adressen nach Postleitzahlen (kanadisch) durchsuchen, in denen kein Leerzeichen enthalten ist, z.

M2N3X6 L4C2A9 K5G1S7 

und füge ein Leerzeichen in der Mitte ein:

M2N 3X6 L4C 2A9 K5G 1S7 

Dies sollte einfach sein, aber ich habe Probleme mit dem Teil "Ersetzen durch": Ich habe herausgefunden, dass ich in das Feld "Suchen" eingebe. Im Feld "Ersetzen" [A-Z][0-9][A-Z][0-9][A-Z][0-9]füge ich den Platz in der Mitte hinzu. die Charaktere behalten, die da sind? Ich dachte, es wäre so etwas \1\2\3 \4\5\6, aber das funktioniert nicht

Jede Hilfe geschätzt.

2
Dies kann eine bessere Frage für StackOverflow.com sein (was die Programmierung betrifft). Welche Sprache verwenden Sie und können Sie den Ersetzungscode in Ihrer Frage eingeben? Mat Carlson vor 10 Jahren 0
Sind diese (fehlerhaften) Postleitzahlen immer genau sechs Zeichen lang? Stehen sie jedes Mal in einer neuen Zeile? nixda vor 10 Jahren 1
Nicht programmieren - nur MS Word 2003 in einem Dokument mit ca. 30 Seiten Adressetiketten verwenden - Mark vor 10 Jahren 0
dh: Herr John Doe 123 Beliebiges St. Toronto, auf M2N3X5 Mark vor 10 Jahren 0
Ja, Postleitzahlen sind immer 6 Zeichen lang - oder ich schätze 7 mit dem Leerzeichen. Sie befinden sich normalerweise auf derselben Linie wie die Stadt Provinz Mark vor 10 Jahren 0

3 Antworten auf die Frage

2

Die \ 1 usw. ersetzen Ausdrücke. Um anzugeben, dass etwas ein Ausdruck ist, schließen Sie ihn in () ein. Deswegen brauchst du

([A-Z])([0-9])([A-Z])([0-9])([A-Z])([0-9]) 

Dann

\1\2\3 \4\5\6 

sollte arbeiten. Ich denke, die Anzahl der möglichen Ausdrücke ist begrenzt (vielleicht 9).

Oder ersetzen Sie einfach [(AZ] [0-9] [AZ]) ([0-9] [AZ] [0-9]) `durch` \ 1 \ 2 '. (Und, D'oh! Ich weiß nicht, warum ich das nicht gefunden habe.) Scott vor 10 Jahren 0
0
Scott

Ich kann keinen Weg finden (im Dialogfeld "Suchen und Ersetzen" von Microsoft Word), um den vollständigen Austausch von Regex zu ersetzen, so wie Sie dies in Programmen tun können sed. Ich habe jedoch eine mehrstufige Lösung für Ihr Problem gefunden. Identifizieren Sie zunächst eine Zeichenfolge, die nicht in Ihren Daten enthalten ist und keine Zeichen enthält, die speziell in Words Suchen und Ersetzen (z. B. ' @' oder ' #') enthalten sind. (Alternativ können Sie sie verwenden, aber entkommen.) Es kann ein einzelnes Zeichen wie ' |' sein, solange es nicht in Ihren Daten erscheint. Ich gehe davon aus, dass Sie " |" gewählt haben. Jetzt,

  1. Suchen Sie nach [A-Z][0-9][A-Z][0-9][A-Z][0-9]und ersetzen Sie mit ^&|. Dadurch wird jede nichtkonforme Postleitzahl mit einem abschließenden „ |“ gekennzeichnet.
  2. Suchen Sie nach [0-9][A-Z][0-9]|und ersetzen Sie diese mit  ^&(durch ein Leerzeichen). Dies fügt den Platz an der gewünschten Stelle ein.
  3. Suchen Sie dann nach allen Vorkommen |und ersetzen Sie sie durch nichts.

Sie können dies ohne den Platzhalter-Modus tun:

  1. ^$^#^$^#^$^#^&|.
  2. ^#^$^#| ^&                (oder sogar ^?^?^?| ^&).
  3. | → nichts.

Beachten Sie, dass dies ^$äquivalent [A-Za-z]ist. Wenn Sie also zwischen Groß- und Kleinschreibung unterscheiden, müssen Sie die "Platzhalter" verwenden.

Hervorragend: Ich weiß nicht, was Subregex bedeutet, dass ich es nachschlagen muss - aber das hat für mich funktioniert! Vielen Dank Mark vor 10 Jahren 0
Es ist nur ein Begriff, den ich für die Verwendung von Codes wie "\ 1" verwendet habe, um einen Teil der gefundenen Informationen (mit einem regulären Ausdruck) in die Ersetzung einzufügen. (Im Gegensatz zu `^ &`, verwendet Word die übereinstimmende Zeichenfolge _entire_.) Scott vor 10 Jahren 0
0
Karen927

Super einfache Möglichkeit: Verwenden Sie in Excel die Funktion "Text in Spalten" und verwenden Sie die Formel CONCATENATE, um mit einem Leerzeichen in der Mitte zu rekombinieren. Die Formel wäre = CONCATENATE (A1, "", B1)