1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Regex Hausnummer mit Zusatz

Dieses Thema im Forum "Java" wurde erstellt von MS-Tech, 11. März 2017.

  1. MS-Tech

    MS-Tech Erfahrenes Mitglied

    Hallo Zusammen,

    ich habe folgende Hausnummer 5a oder 5a-b etc. Ich möchte diese nun zerlegen, d.h.

    Beispiel1:
    int nummer = 5
    String zusatz = a

    Beispiel2:
    int nummer = 5
    String zusatz = a-b.

    Wie mach ich das am einfachsten? Geht das mit einem regulären Ausdruck? Wenn ja, wie?

    Grüße
    MS-Tech
     
  2. abdellaui

    abdellaui Erfahrenes Mitglied

    Am einfachsten machst du es mit regulären Ausdrücken.

    Code (Java):
    1. import java.util.regex.Pattern;
    2. import java.util.regex.Matcher;
    3.  
    4. public class AdressenZusatz{
    5.      public static void main(String []args){
    6.         Pattern pat = Pattern.compile("([0-9]+)([^0-9]*)");
    7.         Matcher mat = pat.matcher("5a-asd");
    8.         boolean pruefe = mat.matches(); // Zur Ueberpruefung ob ueberhaupt mind. ein Zahl eingegeben wurde
    9.         // mat.group(0) = 5a-asd
    10.  
    11.         // if(pruefe){
    12.         int nummer = Integer.parseInt(mat.group(1));
    13.         String zusatz = mat.group(2);
    14.  
    15.  
    16.         System.out.println("Adressenummer: "+nummer);
    17.         System.out.println("Zusatz: "+zusatz);
    18.        // }
    19.      }
    20. }
     
  3. MS-Tech

    MS-Tech Erfahrenes Mitglied

    Hi,

    danke für deine Antwort. Werde ich gleich mal ausprobieren.

    Eine komplette Adresse zu zerlegen wird wahrscheinlich schwierig oder?

    Beispiel:

    Teststraße 1-5a --> zerlegen in Teststraße, 1-5, a
    Teststraße 5 a --> zerlegen in Teststraße, 5, a
    Teststraße 5a --> zerlegen in Teststraße 5, a

    Kriegt man sowas mit regulären Ausdrücken gebacken?

    Grüße
    MS-Tech
     
  4. Yaslaw

    Yaslaw n/a Moderator

  5. MS-Tech

    MS-Tech Erfahrenes Mitglied

    Hi,

    ich hab es gerade getestet und es funktioniert fast perfekt.

    Wenn ich als Beispiel die Adresse Teststraße 15 verwende, dann wird auch diese Straße in 3 Gruppen geteilt, was zwar nicht weiter schlimm ist.

    Group1 = Teststraße
    Group2 = 1
    Group3 = 5

    Kann man das noch anpassen?

    Grüße
    MS-Tech
     
  6. Yaslaw

    Yaslaw n/a Moderator

    Wenn bei der Straseennummer 1-5 keine Leerzeichen drin sind, dann funktioniert
    Code (Javascript):
    1. const regex = /^([\S\s]+?)\s+([\d-]*)\s*([\w])?$/gm;
     
  7. Spyke

    Spyke Capoeirista Premium-User

  8. Yaslaw

    Yaslaw n/a Moderator

    Ist das Problem gelöst?
     
  9. MS-Tech

    MS-Tech Erfahrenes Mitglied

    Hi,

    ja vielen Dank. Ich habe es gerade ausprobiert. Klappt bisher einwandfrei. Die Adressen, die nicht klappen, müssen manuell angepasst werden!

    Grüße
    MS-Tech
     
Die Seite wird geladen...