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 »

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: 1316
Registriert: Fr, 09.12.2011 16:50

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von mikeleb »

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 »

Super, hat funktionert. Vielen Dank für deine Hilfe! :)
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von F3K Total »

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: 1316
Registriert: Fr, 09.12.2011 16:50

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von mikeleb »

Hallo R,

so ist es! (fast)
Teil 2 ( ) -> irgendetwas dazwischen
Das "irgendetwas" ist hier ein Leerzeichen.
Gruß,
mikeleb
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von F3K Total »

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: 1316
Registriert: Fr, 09.12.2011 16:50

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von mikeleb »

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: 3704
Registriert: Mo, 28.02.2011 17:49

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von F3K Total »

Klasse,
Dankeschön!
Gruß R
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: RegEx: Leerzeichen zwischen Zahlen ersetzen

Beitrag von lorbass »

Ü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