我正在搜索php正则表达式来拆分街道和门牌号码,但是当地址没有门牌号时,它应该只提供街道名称。
我有这个:
/([^\d]+)\s?(.+)/i
它有效,但当地址没有门牌号码时,它会从街道名称中拆分最后一个字母。
这是我的代码:
$result = mysqli_query($db, "SELECT street FROM branch;");
$row = mysqli_fetch_assoc();
while($row = mysqli_fetch_assoc($result))
{
if ( preg_match('/([^\d]+)\s?(.+)/i', $row['street'], $street) )
{
$streetName = $street[1];
$streetNumber = $street[2];
echo $streetName;
echo "<br />";
}
}
地址示例: UL.JANA PAWLA,UL.GDANSKA 83A,UL.MOSTOWA 5
答案 0 :(得分:1)
我认为你要做的是:
The Limes 45
变为:
街道:The Limes
数量:45
问题在于,如果数据是:
Goblins Only Street
您的输出不正确。
街道:仅限Globins 数量:街道
因此:试试这个正则表达式:
\s?([^\d]+\s)\s?(\d+.*)*
它的作用:
输入:
The Limes
输出:
Street: The Limes
输入:
The Limes 45
输出:
Street: The Limes
Number: 45
输入:
The Limes 45B
输出:
Street: The Limes
Number: 45B