【问题标题】:How to match city names split by space?如何匹配按空格分割的城市名称?
【发布时间】:2018-10-20 21:02:00
【问题描述】:

试图找出给定两种不同类型的字符串,如何确定一个城市名称是否实际上是一个拆分词?由于在 python 中工作,我拆分字符串并将 s[0] 保存为街道编号,将 s[-1] 保存为邮政编码等等,但是如何确定城市名称是否可能是拆分词,例如 New York 或 San何塞!?

例如: 123 Main Street St. Louisville OH 43071 [城市名称为单字]

E. g : 45 圣杯铝。 Niagara Town ZP 32908 [城市名称'Niagara Town'是两个字]

原谅菜鸟的问题。

谢谢,

【问题讨论】:

  • 你如何首先获得地址。如果是用户输入,那么您可以让他们在不同的字段中输入地址第 1 行,然后是城镇等,而不是一次性将其保存为带逗号的字符串。像 123 Main St, London, EC1 0HB。现在您可以用逗号分隔。而且镇名不管多少字都是一串。
  • 不要为菜鸟问题道歉。这里的每个人都是菜鸟!不用担心。尝试解释(正如 noyanc 提到的)从哪里得到字符串。
  • 也许还可以从查看您的地址字符串中是否存在某种格式开始,否则除非通过查找,否则将没有任何安全的方法来保证识别 2 个部分城市。
  • 地址存储在列表中,列表中的每个条目都存储为单个字符串。两者之间只有一个空白字符。例如,它会读作“123 Main Street St. Louisville OH 43071”或“45 Holy Grail Al。 Niagara Town ZP 32908' 对于如何为其添加正则表达式有点难过!

标签: python string


【解决方案1】:

我在这里做了两个假设:
1) 城镇名称前的数字代码始终为数字
2) 没有带有数字名称的城镇名称

index =   list(filter(lambda x: x[1].isnumeric(),enumerate(x.split())))[-1][0]

" ".join(x.split()[index+1:])

那么发生了什么:我们尝试识别拆分的最后一部分纯数字,然后获取该元素的索引。然后我们连接该数字元素之后的所有元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 2016-11-26
    • 2014-01-17
    • 1970-01-01
    相关资源
    最近更新 更多