Regex Hausnummer mit Zusatz

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
 
Am einfachsten machst du es mit regulären Ausdrücken.

Java:
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class AdressenZusatz{
     public static void main(String []args){
        Pattern pat = Pattern.compile("([0-9]+)([^0-9]*)");
        Matcher mat = pat.matcher("5a-asd");
        boolean pruefe = mat.matches(); // Zur Ueberpruefung ob ueberhaupt mind. ein Zahl eingegeben wurde
        // mat.group(0) = 5a-asd

        // if(pruefe){
        int nummer = Integer.parseInt(mat.group(1));
        String zusatz = mat.group(2);


        System.out.println("Adressenummer: "+nummer);
        System.out.println("Zusatz: "+zusatz);
       // }
     }
}
 
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
 
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
 
Wenn bei der Straseennummer 1-5 keine Leerzeichen drin sind, dann funktioniert
Javascript:
const regex = /^([\S\s]+?)\s+([\d-]*)\s*([\w])?$/gm;
 
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
 
Zurück