从地址分开的房屋号码

Opt*_*ime 1 php

我必须分割地址和housenumber以获得循环功能.

重要的是,这适用于任何类型的地址,所以我不是100%确定如何以最好的方式做到这一点.

地址可以看起来像

Mystreet 14a
Mystreet 4
Mystreet 4a
Wilderness and I have no housenumber
Run Code Online (Sandbox Code Playgroud)

我想逻辑应检查一个数字后跟一两个字母.

有什么好办法吗?

要澄清:这是对挪威地址的查询,我认为该地址是一个或多个单词,后跟可选数字.该数字最后还可能包含一个可选字母(参见上面的示例).

Ste*_*tei 6

试试这个解决方案 我曾经preg_match找到过你在问题中描述的挪威地址:

$input_string = 'Mystreet test 33b';

$address = "";
$number = "";

$matches = array();
if(preg_match('/(?P<address>[^\d]+) (?P<number>\d+.?)/', $input_string, $matches)){
    $address = $matches['address'];
    $number = $matches['number'];
} else { // no number found, it is only address
    $address = $input_string;
}

echo "Input: $input_string <br/>";
echo "Address: $address <br />";
echo "Number: $number";
Run Code Online (Sandbox Code Playgroud)

样本输出:

Input: Mystreet test 33b
Address: Mystreet test
Number: 33b
Run Code Online (Sandbox Code Playgroud)

  • 啊错误是在正则表达式中,[^ d]应该是[^\d] (2认同)