preg_match ... Ausdruck gesucht!
Christof
- php
0 Joachim0 Dieter Raber0 wahsaga0 Götz
Hallo,
ich habe im moment ein Brett vor dem Kopf!
Ich muss aus einer Strass mit Hausnummer die Hausnr. extrahieren
Also aus "Doernbergstraße 12" die "12".
Ich habs probiert mit
preg_match('[0-9]{0,}',"Doerenbergstraße 12",$treffer);
In $treffer müsste an der Stelle 0 doch die 12 stehen, aber das tut sie nicht! HAt jemand eine Idee?
Danke sehr!
Hi,
preg_match('[0-9]{0,}',"Doerenbergstraße 12",$treffer);
so vielleicht?
$str = "Was auch immer platz 10 - 15";
$reg = "/^([^0-9]+)([0-9- ]+)$/";
$xy = preg_match($reg, trim($str), $matches);
$nr = $matches[2];
Gruesse, Joachim
Hallo Christof,
preg_match('[0-9]{0,}',"Doerenbergstraße 12",$treffer);
In deinem Beispiel fehlen die Delimiter '/' um den regulaeren Ausdruck. Zudem brauchst Du +, bzw {1,}, nicht *, bzw. {0,}. fuer die Haeufigkeit. Dein Ausdruck kann nur Zahlen finden, keine Buchstaben, also Doerenbergstraße 12 wird gefunden, Doerenbergstraße 12b und Doerenbergstraße 12 b hingegen nicht. Im Endeffekt kommst Du auf den folgenden Ausdruck:
preg_match("/\d+[ ]?\w*/", "Doerenbergstraße 12 b", $treffer);
print_r($treffer);
Array
(
[0] => 12 b
)
Dieter
hi,
preg_match('[0-9]{0,}', ...
beschäftige dich bitte wenigstens so grundlegend mit regulären ausdrücken, dass dir die bedeutung des begriffes "delimiter" klar wird.
gruß,
wahsaga
Hallo Christof!
Also aus "Doernbergstraße 12" die "12".
Ich habs probiert mit
preg_match('[0-9]{0,}',"Doerenbergstraße 12",$treffer);
Ich würds mal mit /([A-Za-z.-]*) ([0-9]*)/ versuchen.
In $treffer[0] sollte der Straßenname, in $treffer[1] die Hausnummer stehen.
(Ich weiß ja nicht, welche Zeichen in Deinen Straßennamen vorkommen, mußt ggf. noch ergänzen.)
Nunja, ich habe "sollte" geschrieben, weil das Ergebnis ein wenig anders ist, als ich erwartetete.
aber in $treffer[2] steht zumindest 12 ;)
Folgender Code ...
$strasse = 'Doerenbergstraße 12';
$treffer = array();
$preg = preg_match('/([A-Za-z.-]*) ([0-9]*)/', $strasse, $treffer);
... ergibt für $treffer:
array
0 => 'e 12'
1 => 'e'
2 => '12'
Warum das rauskommt ist mir nicht so ganz klar, aber was solls.
MfG
Götz
Hallo,
(Ich weiß ja nicht, welche Zeichen in Deinen Straßennamen vorkommen, mußt ggf. noch ergänzen.)
ß
Grüße,
Florian