所以我需要分割街道名和门牌号,所以如果这是字符串:
“示例街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个字符,或者如果门牌号中包含字母,则会跳过它。
答案 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
)
)