【问题标题】:Regex: Omitting street address up until the city?正则表达式:省略街道地址直到城市?
【发布时间】:2020-03-16 03:25:41
【问题描述】:

假设我有这个字符串:1111 Butterfly Ct City, CA 00000

我想省略 1111 Butterfly Ct(包括后面的空格),只匹配 City 及以后。

我的逻辑是,如果我匹配^.+?Ct\s,它将匹配直到City 的所有内容。 我想做相反的事情。之后匹配所有内容。 执行[^.+?Ct\s],它只显示街道地址的单个字符减去“Ct”部分的匹配。

【问题讨论】:

  • 如果城市有一个名字,你可以使用\b[A-Za-z]+,.*,但如果可以,New York,例如,你有一个问题(不仅仅是一个正则表达式问题)确定街道的终点城市开始了。
  • 实际地址:“26 Central Street West Springfield, MA 01089”。 (这里是“西斯普林菲尔德”的城市,而不是“斯普林菲尔德”中的“Central Street West”街道。

标签: regex regex-negation


【解决方案1】:

你想要一个零宽度的断言,例如:

(?<=Ct\s).*

查看https://regex101.com/r/lDUuiX/1的示例

【讨论】:

  • 谢谢!您的回答让我在这篇文章中了解了更多关于外观的信息:stackoverflow.com/questions/2973436/…
  • 谨慎,您只对以“Ct”结尾的街道名称感兴趣?
  • @CarySwoveland 我将列出这些并使用“|”检查“Ct|Dr|”等等等等。
  • 谨慎,您应该在问题中说明这一点。我建议你不要写“etc. etc.”,而是给出一个包含三个或四个结尾的特定列表,作为示例,以便读者可以在他们的答案中使用该列表。 These 街道名称后缀列表可能很有趣。
  • @CarySwoveland 我很欣赏这个链接。这个问题只是问如何忽略直到某个部分并保持主题而不关注后缀。 Lookarounds 回答了这个问题,我回复了一个链接,供任何读者了解有关 Lookarounds 的更多信息。我只是回应了你的好奇心。
猜你喜欢
  • 1970-01-01
  • 2012-03-12
  • 1970-01-01
  • 2019-04-01
  • 1970-01-01
  • 2013-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多