Python RegEx从地址中分割街道和数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python RegEx从地址中分割街道和数字相关的知识,希望对你有一定的参考价值。

我想分割街道和数字。

这是我当前的解决方案:

matches = re.match(r'^(?<street>[^,]*?)[,\s]*(?P<number>\d[\w\s\-/]*$)', street_number)

但在某些情况下不起作用。如果我有这样的例子:

working_examples = [
    'Somestreet 1',
    'Somestreet1',
    'Somestreet1a',
    'Somestreet 1a',
    'Somestreet 1 a'
]

[print(matches.groupdict())为work_examples的第一个元素打印:

'street': 'Somestreet', 'number': '1'

但是在这种情况下:

not_working_examples = [
    'Some 1 street',
    'Some 1a street'
]

打印

'street': 'Some ', 'number': '1 street'

我的目标是拥有

'street': 'Some 1 street', 'number': None

答案
import re


examples = [
    'Somestreet 1',
    'Somestreet1',
    'Somestreet1a',
    'Somestreet 1a',
    'Somestreet 1 a',
    'Some 1 street',
    'Some 1a street'
]

for s in examples:
    matches = re.match(r'^(?P<street>.+?)[,\s]*(?P<number>\d\s?\w?)$', s)
    if matches:
        print(matches.groups())
    else:
        print s, "doesn't match"

以上是关于Python RegEx从地址中分割街道和数字的主要内容,如果未能解决你的问题,请参考以下文章

如何在r [duplicate]中使用for循环从数据框中分割文本和数字

使用 RE - Python 从字符串中提取不同格式的街道地址

如何在存在重叠和噪声的情况下从图像中分割主要形状?

从联系 Swift 获取街道地址

如何在第一个数字之后拆分街道地址?

在 Python 中分割成试验的尖峰列车图(神经科学)