Thread Split letzte Hausnummer von String? (5 answers)
Opened by kami at 2012-04-27 16:26

FIFO
 2012-04-28 11:00
#157919 #157919
User since
2005-06-01
469 Artikel
BenutzerIn

user image
Das funktioniert nicht, wenn nur eine Nr. angegeben ist, Leerzeichen auftauchen, oder '/' statt '-'. Etwas allgemeiner könnte man es so machen:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
my $regex = qr(
    (\d+\s*[a-zA-Z]?)       # erste Nr.
    (?:                     # Trennzeichen verwerfen
        \s*[-/]\s*
        (\d+\s*[a-zA-Z]?)   # zweite Nr.
    )?                      # oder auch nicht
)x;

my @nr = ("Hauptstr. 77", "Hauptstr. 77-88 a", "Hauptstr. 77 / 79a", "Hauptstr. 77b - 79");

for my $testnr (@nr) {
    my ($nr1, $nr2) = $testnr =~ /$regex/;
    printf("%s, %s\n", $nr1, $nr2);
}


Ausgabe:
Code: (dl )
1
2
3
4
77, 
77, 88 a
77 , 79a
77b, 79

EVtl. Leerzeichen kann man ja einfach ersetzen, falls gewünscht.
Gruß FIFO

Editiert von FIFO: Ausgabe ergänzt
Last edited: 2012-04-28 11:02:29 +0200 (CEST)
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"

View full thread Split letzte Hausnummer von String?