从地址字段中拆分门牌号
Split housenumber from Addressfield
我想将单个地址字段拆分为街道和门牌号字段。
这是一些示例数据:
Examplestreet 1
Examplestreet 1A
Examplestreet 1 B
The Examplest street 2
1st Example street 3A
1st Example street 13 A
现在,我在想,我从右边开始,寻找我遇到的第一个数字,然后继续前进,直到遇到第一个 space 并在那里拆分。
你会得到这样的东西:
Example: 1st Example street 13 A
Start from the right: A
Find the first number: A 3
Keep going until the first space: A 31
Split here: 1st Example Street | 13A
我想单独在 mySQL 中使用它,但也可以使用 PHP。
当你知道更好的方法时,我想知道。
我开始查看 SUBSTRING_INDEX,但没有成功。
坦率地说,我不知道从哪里开始。
如果门牌号总是在字符串的末尾,从数字开始,我们可以使用正则表达式:
<?php
$names = array(
'Examplestreet 1',
'Examplestreet 1A',
'Examplestreet 1 B',
'The Examplest street 2',
'1st Example street 3A',
'1st Example street 13 A ',
);
foreach($names as $value)
{
$matches = array();
if (preg_match('/.*\s(\d.*)/', $value, $matches))
{
print $matches[1]."\n";
}
}
输出:
1
1A
1 B
2
3A
13 A
我想将单个地址字段拆分为街道和门牌号字段。
这是一些示例数据:
Examplestreet 1
Examplestreet 1A
Examplestreet 1 B
The Examplest street 2
1st Example street 3A
1st Example street 13 A
现在,我在想,我从右边开始,寻找我遇到的第一个数字,然后继续前进,直到遇到第一个 space 并在那里拆分。
你会得到这样的东西:
Example: 1st Example street 13 A
Start from the right: A
Find the first number: A 3
Keep going until the first space: A 31
Split here: 1st Example Street | 13A
我想单独在 mySQL 中使用它,但也可以使用 PHP。
当你知道更好的方法时,我想知道。
我开始查看 SUBSTRING_INDEX,但没有成功。
坦率地说,我不知道从哪里开始。
如果门牌号总是在字符串的末尾,从数字开始,我们可以使用正则表达式:
<?php
$names = array(
'Examplestreet 1',
'Examplestreet 1A',
'Examplestreet 1 B',
'The Examplest street 2',
'1st Example street 3A',
'1st Example street 13 A ',
);
foreach($names as $value)
{
$matches = array();
if (preg_match('/.*\s(\d.*)/', $value, $matches))
{
print $matches[1]."\n";
}
}
输出:
1
1A
1 B
2
3A
13 A