kostenloser Webspace werbefrei: lima-city


Regexp für Strassennamen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    kingalex

    kingalex hat kostenlosen Webspace.

    HiHo alle,

    m?glicherweise k?nnt ihr mir bei meinem Problem helfen?

    Ich suche einen regul?ren Ausdruck (regexp) f?r alle m?glichen Strassennamen in Deutschland.

    Ich hatte es zwar schon mit folgendem Ausdruck versucht:

    preg_match("/^([a-zA-Z_\-\.]+) (0-9)$/");


    Klappt allerdings nicht so wie ich mir das erhofft hatte :mad:, denn beispielsweise diese Strassen l?sst der Compiler nicht durchgehen:

    Wilhelm-K?lz-Stra?e 10a-20a
    Swinem?nder Stra?e 5
    Weiherg?rten 25b :confused:

    Andererseits sollte der Compiler auch nicht Phantasienamen mit Hausnummern, die es nicht gibt akzeptieren.:slant:

    Hoffe, ihr k?nnt mir helfen
    mfg kingalex
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ist dir aufgefallen dass alle diese Stra?en Umlaute wie ?,? im Namen haben? Ich glaub die musst du noch erg?nzen, damit er die Stra?en anerkennt.

    Kann aber sein das ich auf einer v?llig falschen Schiene bin..
  4. Autor dieses Themas

    kingalex

    kingalex hat kostenlosen Webspace.

    hi mace,
    danke f?r deine schnelle Antwort :biggrin:

    ich hab das jetzt mal mit diesen Umlauten und ? probiert ->
    preg_match("/^([a-zA-Z???????_\-\.]+) (0-9)$/");


    Nur leider meckert der Compiler immer noch :mad::mad:

    keine Ahnung woran das liegen k?nnte :confused:
  5. theuntouchables

    theuntouchables hat kostenlosen Webspace.

    Simple sache...
    Du hast dem kompliler gesagt das nach der hausnummer kein buchstabe mehr kommen darf, deshalb matchts ned auf 23b o.?.

    preg_match("#^[a-zA-Z???????\-\.]+[0-9]{1,4}[a-zA-Z]{0,1}$#")


    Sollte klappen

    Edit:
    Na tats naicht, ah vergessen das es auch nummernbereiche sein sollen...

    So gehts
    preg_match("#^[a-zA-Z??????? \-\.]+[a-zA-Z0-9\-]+$#")

    Da kann man sich aber auch unsinnige zahlen ausdenken, also das was du willst geht nicht 100%tig

    Beitrag ge?ndert am 8.01.2006 20:15 von theuntouchables
  6. was meinst du ndenn mit unsinnigen Zahlen?

    123, 111, 222, 333, 321, 543, 345?
    kann doch sein!
    oder meinst du 9999999999999999999999999999999999999999999999999999999999999999999 mit unsinnig?!

  7. So gehts
    preg_match("#^[a-zA-Z??????? \-\.]+[a-zA-Z0-9\-]+$#")



    Die Zeichenklasse f?r alle Buchstaben (der jeweiligen "Locale"-Einstellung) hei?t [:alpha:]

    also f?r alle Buchstaben:

    '/[[:alpha:]]/'
    statt
    '/[a-zA-Z???????]/'

    Wie w?re es mit:

    $strasze = '...';

    preg_match(
    '/(\A[[:alpha:].\-\ ])(\s+)(\d{1,4}[a-z]?)(\-(\d{1,4}[a-z]?))?\Z/'
    $strasze,
    $rx_matches
    );

    Geht alles gut, stehen in $rx_matches die Einzelteile:
    $rx_matches[1] = Stra?en-Name
    $rx_matches[3] = Hausnummer (von)
    $rx_matches[5] = Hausnummer (bis, wenn vorhanden)

    Hab ich aber noch nicht getestet ... -.-


  8. So gehts
    preg_match("#^[a-zA-Z??????? \-\.]+[a-zA-Z0-9\-]+$#")



    Die Zeichenklasse f?r alle Buchstaben (der jeweiligen "Locale"-Einstellung) hei?t [:alpha:]

    also f?r alle Buchstaben:

    '/[[:alpha:]]/'
    statt
    '/[a-zA-Z???????]/'

    Wie w?re es mit:

    $strasze = '...';

    preg_match(
    '/(\A[[:alpha:].\-\ ])(\s+)(\d{1,4}[a-z]?)(\-(\d{1,4}[a-z]?))?\Z/'
    $strasze,
    $rx_matches
    );

    Geht alles gut, stehen in $rx_matches die Einzelteile:
    $rx_matches[1] = Stra?en-Name
    $rx_matches[3] = Hausnummer (von)
    $rx_matches[5] = Hausnummer (bis, wenn vorhanden)

    Hab ich aber noch nicht getestet ... -.-


    Ich wohne "Am Friedhof"...
    Aber das Leerzeichen hast du glaube ich nicht beachtet.
    Au?erdem, was soll das ?berhaupt bringen?
    Halte ich f?r ziemlich sinnlos.

    MfG Lucas


  9. preg_match(
    '/(\A[[:alpha:].\-\ ])(\s+)(\d{1,4}[a-z]?)(\-(\d{1,4}[a-z]?))?\Z/'
    $strasze,
    $rx_matches
    );

    Ich wohne "Am Friedhof"...


    Nicht mein Problem ... :biggrin:


    Aber das Leerzeichen hast du glaube ich nicht beachtet.
    Au?erdem, was soll das ?berhaupt bringen?
    Halte ich f?r ziemlich sinnlos.

    MfG Lucas


    F?r dich noch mal in dick:
    (\A[[:alpha:].\-\ ])

    Ich h?tte nat?rlich statt "\ " auch "\s" schreiben k?nnen, aber das ist streng genommen, ja kein Leerzeichen.

    Und weil wir gerade beim Kr?mel-Kacken sind: Das Zeichen f?r "von--bis" wird typografisch korrekt eigentlich durch den Unicode 8211 dargestellt, notfalls durch ANSI-Code-150 (Dezimal). Das einfache "Minus" ist da falsch am Platz.

    Aber ich muss dir recht geben: Egal, wie kompliziert man den RegEx bastelt, es wird immer wieder Buchstaben-Kombinationen geben, die durchrutschen, obwohl sie ?berhaupt keinen Sinn ergeben:

    "1233aXY???-Bier 1234a-9999" w?re in dem Fall auch eine g?ltige Adresse ... -.-
  10. Autor dieses Themas

    kingalex

    kingalex hat kostenlosen Webspace.

    Danke ihr habt mir sehr geholfen :biggrin:

    An Admin: Thread kann geschlossen werden!
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!