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循环从数据框中分割文本和数字