1

String を var street と streetnr に分割したい。どうすればphpでこれを行うことができますか?

データは次のようになります。

Bakerstreet 5
Wild Street 5 a
Best Street 5a
Simplestreet

数字のない通りと文字のある通りがあります...どうすればこれを行うことができますか?

だから通りはいつもこうあるべきだ

var street = Bakerstreet、Wild Street、Best Street、Simplestreet

var streetnr は常に = 5, 5 a, 5a である必要があります

私の考えは、すべての空白の後に文字列を分解することでした " " ... 次に、配列を逆にして、最初の要素が単なる文字かどうかを調べます。ある場合は、streetnr に入れます。次に、次の要素をチェックします。数字だけならstreetnrに入れたり…など

4

3 に答える 3

1

正規表現を使用する

preg_match('~^\s*(.*)\s+([0-9]+\s*[a-zA-Z]{0,1})\s*$~', $street, $match);

preg_match は、通りが正しい形式で、$match が [1]=通り名、[2]=streetnr を含む配列である場合に true を返します。

于 2013-07-15T17:15:44.733 に答える
0

次の正規表現を使用して一致させることができます。

preg_match('/^(.+?)(?:\s+(\d.*))?$/', $street, $matches);
$street = $matches[1];
if (count($matches) == 3)
  $streetnr = $matches[2];
于 2013-07-15T17:13:54.100 に答える