PHP拆分街道和门牌号码

时间:2020-04-09 14:43:47

标签: php regex string split

所以我需要分割街道名和门牌号,所以如果这是字符串:

“示例街12”

我希望街道和号码彼此分开:

“样品街”“ 12”

但是,如果门牌号中有一个字母,例如1A,则需要显示为:

“样品街”“ 1A”

我尝试使用:

$straat = $order->get_shipping_address_1();
$straat = preg_replace("/[^A-Z]+/", "", $straat);

在大街上

并且:

$str = $order->get_shipping_address_1();
preg_match_all('!\d+!', $str, $matches);

对于数字,但它仅返回1个字符,或者如果门牌号中包含字母,则会跳过它。

1 个答案:

答案 0 :(得分:1)

您可以使用一种模式,该模式可以匹配所有内容,直到数字后跟任意数量的字符(\d\w*)为止。它还使用单词边界来分割不同的数字部分...

$straat = 'Sample street 1A';
preg_match_all('!(.*)\b(\d\w*)\b!', $straat, $matches);
print_r($matches);

给予

Array
(
    [0] => Array
        (
            [0] => Sample street 1A
        )

    [1] => Array
        (
            [0] => Sample street 
        )

    [2] => Array
        (
            [0] => 1A
        )

)