Adresse splitten

Keiner mehr ne idee ? ich weiß nicht warum der das eine findet und das andere nicht. Kann das mal wer überprüfen ob das bei euch auch so ist.
 
Nun ... das Problem ist das die RegEx nach folgendem FESTEN Format sucht

Straße Nummer PLZ Ort

Wenn du jetzt die Nummer rauslässt und stattdessen gleich die PLZ Folgt bleibt er an dem Leerzeichen was eigentlich hinter der Nummer kommen MUSS "hängen" und verweigert desshalb das matchen. Es wäre nun also auch noch wichtig zu prüfen ob überhaupt eine Nummer angegeben wurde. Leider habe ich selbst nur sehr wenig Erfahrung mit RegEx so das ich dir jetzt leider nichts zusammen bauen kann ... aber ich denke die anderen sollten es mit dieser Info schaffen.
 
PHP:
<?php
$adresses = array(
	'Adolfstrasse 25 13347 Berlin',
	'Alarichplatz 12105 Berlin',
	'Am Flutgraben 1 10997 Berlin',
	'Carl-Weder-Park 12347 Berlin',
	'Carl-Weder-Park 2 12347 Berlin'
);

$rx = '/^(.+?) ?([0-9]+)? ([0-9]+) (.+)$/';

foreach($adresses as $adr) {
	if(preg_match($rx, $adr, $matches)) {
		
		foreach($matches as $match) {
			print($match);
			print("\n");
		}
		
		print("----------\n");
	}
}
?>

Ausgabe

Adolfstrasse 25 13347 Berlin
Adolfstrasse
25
13347
Berlin
----------
Alarichplatz 12105 Berlin
Alarichplatz

12105
Berlin
----------
Am Flutgraben 1 10997 Berlin
Am Flutgraben
1
10997
Berlin
----------
Carl-Weder-Park 12347 Berlin
Carl-Weder-Park

12347
Berlin
----------
Carl-Weder-Park 2 12347 Berlin
Carl-Weder-Park
2
12347
Berlin
----------
 
Wow ... das nenn ich mal eine extrem verkürzte RegEx die aber dennoch ihren Dienst tut ... R.E.S.P.E.C.T.
 
Zurück