![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Nessaja, 30. 04. 2007, 12:06
Hallo ihr :)
Ich beschäftige mich gerade mit regular expressions in php und möchte nun aus einem String die Hausnummer auslesen.
Der String kann z.B. lauten:
- "Josefstraße 123"
- "Hansstr.345"
- "Josef Müller Schmid Str. 17a"
- "Franz-Josef-Strauß-Str. 25 C"
- "Birkenstraße12 (bei Frisör Müllermeierschulz)"
Jetzt habe ich es mit folgendem Ausdruck probiert:
$muh = preg_match_all ( "/[0-9]{1,5}\ {,1}[a-zA-z]{,1}/", "Beethovenstr. 25a (Frisör Meier)", $Treffer);
vorher natürlich brav $Treffer = array();
Um also den Ausdruck zu erklären - so wie ich mir den ausgedacht habe - : eine Zahl mit 0-5 Stellen, dann evtl. 1 Leerzeichen und dann evtl. 1 Buchstabe a-zA-Z
Wenn ich mir jetzt $Treffer anzeigen lasse, enthält es nur:
Array ( [0] => Array ( ) )
Ich möchte aber die Hausnummer ausgegeben bekommen, bzw. Sie in das Array $Treffer geschrieben bekommen (in diesem Fall "25a"), inklusive a/b/c etc. bei der Hausnummer, und egal ob vorher ein Punkt oder ein Leerzeichen oder direkt der Straßenname ist...
Kann mir da evtl. jemand weiterhelfen :) ?
Danke und Gruß
Nessaja.
Die folgende Nachricht zum Thema stammt von: numb, 30. 04. 2007, 12:20
Hallo,
»» $muh = preg_match_all ( "/[0-9]{1,5}\ {,1}[a-zA-z]{,1}/", "Beethovenstr. 25a (Frisör Meier)", $Treffer);
Probier's mal mit "/[0-9]{1,5} {0,1}[a-zA-Z]{0,1}/"
Tschüss.
Die folgende Nachricht zum Thema stammt von: Hopsel, 30. 04. 2007, 12:26
Hi numb!
»» Probier's mal mit "/[0-9]{1,5} {0,1}[a-zA-Z]{0,1}/"
Statt {0,1} kannst du auch "?" benutzen. Also:"/[0-9]{1,5}\ ?[a-zA-z]?/"
MfG H☼psel
--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
Die folgende Nachricht zum Thema stammt von: steckl, 30. 04. 2007, 12:31
Hi,
»» »» $muh = preg_match_all ( "/[0-9]{1,5}\ {,1}[a-zA-z]{,1}/", "Beethovenstr. 25a (Frisör Meier)", $Treffer);
»» Probier's mal mit "/[0-9]{1,5} {0,1}[a-zA-Z]{0,1}/"
Das "{0,1}" koennte man noch durch "?" (steht auch fuer 0 oder 1 mal) ersetzen. Ausserdem sollte man den hinteren Teil (" {0,1}[a-zA-Z]{0,1}") vielleicht noch in klammern setzen, da sonst auch ein Leerzeichen, auf das kein Buchstabe folgt gefunden wird.
Mein Vorschlag waere folgender:
/\d+( ?[a-zA-z])?/
"\d" steht fuer Ziffer (genau wie "[0-9]") und das "+" heisst mindestens einmal (wie "{1,}").
mfG,
steckl
Die folgende Nachricht zum Thema stammt von: Nessaja, 30. 04. 2007, 13:57
Hallo,
danke für alle eure Antworten :-)
Habe jetzt die Version von steckl verwendet.
Danke nochmal.
Nessaja
Die folgende Nachricht zum Thema stammt von: Gunnar Bittersmann, 30. 04. 2007, 12:38
Hello out there!
»» Ich beschäftige mich gerade mit regular expressions in php und möchte nun aus einem String die Hausnummer auslesen.
Das geht wohl nicht.
»» Der String kann z.B. lauten:
»»
»» - "Josefstraße 123"
»» - "Hansstr.345"
»» - "Josef Müller Schmid Str. 17a"
»» - "Franz-Josef-Strauß-Str. 25 C"
»» - "Birkenstraße12 (bei Frisör Müllermeierschulz)"
Oder auch "Straße des 17. Juni 135".
Siehe http://forum.de.selfhtml.org/archiv/2006/8/t135363/
See ya up the road,
Gunnar
--
„Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
Die folgende Nachricht zum Thema stammt von: MudGuard, 03. 05. 2007, 00:01
Hi,
»» »» - "Josefstraße 123"
»» »» - "Hansstr.345"
»» »» - "Josef Müller Schmid Str. 17a"
»» »» - "Franz-Josef-Strauß-Str. 25 C"
»» »» - "Birkenstraße12 (bei Frisör Müllermeierschulz)"
»» Oder auch "Straße des 17. Juni 135".
Oder auch "A 1 1" oder "B 2 3" (Mannheimer Innenstadt - Buchstabe und erste Zahl geben das Quadrat an, die zweite Zahl dann die Hausnummer).
Es gibt auch Hausnummern wie "2 1/3".
M.E. braucht man drei Felder:
1. Straßenname (ausreichend Platz lassen, "Platz des Friedens und der Völkerverständigung" ist keine Erfindung)
2. Hausnummer
3. Adreßzusatz ("Hinterhof", "c/o Maier", "Rückgebäude", "2. OG", ...)
Wobei 2. und 3. auch leer sein können.
Wenn die Felder zusammengesetzt wurden, ist es praktisch unmöglich, sie automatisch wieder zu trennen.
cu,
Andreas
--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
© 1998-2006
Impressum, Software: Classic Forum