RegEx: Leerzeichen zwischen Zahlen ersetzen

Das Textverarbeitungsprogramm

Moderator: Moderatoren

Bürow
Beiträge: 2
Registriert: So, 05.02.2017 13:50

RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von Bürow » So, 05.02.2017 14:00

Hallo allerseits,

ich versuche gerade in einem Writer-Dokument, das neben Text auch Telefonnummern enthält, alle Telefonnummern einheitlich zu formatieren:
aus 0 43 13 / 89 12 34 35 (frei erfunden) soll 04313/89123435 werden. Wie muss ich vorgehen, wenn ich das mit regulären Ausdrücken erledigen will, das Dokument ist nämlich ziemlich groß? Die entsprechenden Stellen finde ich ja mit [0-9] [0-9], aber womit muss ich das Ganze dann ersetzen?
Für Eure Hilfe bin ich Euch jetzt schon dankbar :)

LG Bürow

mikeleb
******
Beiträge: 631
Registriert: Fr, 09.12.2011 16:50

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von mikeleb » So, 05.02.2017 16:47

Hallo,
du suchst nach: ([0-9])( )([0-9])
und ersetzt durch: $1$3
Gruß,
mikeleb

Bürow
Beiträge: 2
Registriert: So, 05.02.2017 13:50

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von Bürow » So, 05.02.2017 17:26

Super, hat funktionert. Vielen Dank für deine Hilfe! :)

F3K Total
********
Beiträge: 3138
Registriert: Mo, 28.02.2011 17:49

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von F3K Total » So, 05.02.2017 17:49

Hallo mikeleb,
kannst du den Ausdruck bitte verbal erläutern?

Edit: Ich glaube ich habe ihr verstanden:
  • Teil 1: ([0-9]) -> eine Zahl
  • Teil 2 ( ) -> irgendetwas dazwischen
  • Teil 3 ([0-9]) -> eine Zahl
Wird ersetzt durch
  • Teil 1: $1
  • Teil 3: $3
Richtig?
Gruß R

mikeleb
******
Beiträge: 631
Registriert: Fr, 09.12.2011 16:50

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von mikeleb » So, 05.02.2017 18:05

Hallo R,

so ist es! (fast)
Teil 2 ( ) -> irgendetwas dazwischen
Das "irgendetwas" ist hier ein Leerzeichen.
Gruß,
mikeleb

F3K Total
********
Beiträge: 3138
Registriert: Mo, 28.02.2011 17:49

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von F3K Total » So, 05.02.2017 18:25

mikeleb hat geschrieben:
So, 05.02.2017 18:05
Das "irgendetwas" ist hier ein Leerzeichen.
Dankeschön! Weisst du, wie es für alle "Nichtzahlen" also "irgendwas" aussehen müsste?
Gruß R

mikeleb
******
Beiträge: 631
Registriert: Fr, 09.12.2011 16:50

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von mikeleb » So, 05.02.2017 18:29

Hi R,
wenn es genau eine Nichtziffer sein soll:

Code: Alles auswählen

([0-9])([^0-9])([0-9])
Gruß,
mikeleb

F3K Total
********
Beiträge: 3138
Registriert: Mo, 28.02.2011 17:49

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von F3K Total » So, 05.02.2017 19:07

Klasse,
Dankeschön!
Gruß R

Benutzeravatar
lorbass
********
Beiträge: 4013
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von lorbass » Di, 07.02.2017 18:50

Übrigens:
  • Die Klammern („capturing parentheses“) um den den mittleren Teilausdruck sind entbehrlich, da dieser ja im Folgenden gar nicht weiter verwendet wird, sondern sogar entfällt.
    Statt ([0-9])([^0-9])([0-9]) reicht also ([0-9])[^0-9]([0-9]) völlig aus. Das Ergebnis setzt sich dann natürlich mit $1$2 zusammen.
  • Wenn zwischen den Zahlen auch schon mal mehr als ein Leerzeichen entfernt werden muss, hilft die Ergänzung des mittleren Teil-RegEx um ein Plus-Zeichen [^0-9]+.
  • Erste Hilfe bei der Interpretation eines RegEx bei userguide.icu-project.org
Gruß
lorbass

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste