城市和街道名称的正则表达式

问题描述 投票:0回答:1

嗨,我正在寻找描述以下内容的2个正则表达式:

1)街道的有效名称

2)城市的有效名称

有效的街道名称是:

  • 大街。
  • 大街
  • 大街
  • 新大大街
  • Mainstreet-New
  • 电源线
  • 圣亚历山大街
  • abcÜüßäÄööààäééêëôôœùûüÿçÀ-ÄÈÉÊËÎÏÔŒÙÛÜŸÇ。
  • 约翰·肯尼迪街

无效的街道名称是:

  • Mainstreet#+;:_ *´`?=)(/&%$§!
  • Mainstreet#+;:_ *´`?=)(/&%$§!
  • 大街2
  • Mainstreet ..
  • Mainstreet§

有效的城市是:

  • Edinôœùûüÿ
  • 柏林。
  • 圣圣彼得堡
  • 新柏林
  • Aue-Bad Schlema
  • 美因河畔法兰克福
  • 纽伦堡
  • Ab
  • [纽约市ßäÄööààäééêëîôôœùûüÿçÀ-ÄÈÉÊËÎÏÔŒÙÛÜŸ

无效的城市是:

  • 爱丁堡123
  • Edingburg123
  • 圣安德鲁斯12
  • 柏林,#+;:_ *´`?=)(/&%$§!
  • 柏林__

我目前拥有的解决方案非常接近,但并不完美:

对于城市和街道名称:

^[^\W\d_]+(?:[-\s][^\W\d_]+)*[.]?$

不幸的是,这些示例没有匹配项(其余工作正常):

  • 圣亚历山大街
  • 圣圣彼得堡

[如果您有更简单的解决方案,我很乐意学习。新! :-)

regex validation expression
1个回答
0
投票

要使其与St. Alexander StreetSt. Petersburg匹配,您只需要在字母匹配模式之后添加一个可选的点:

^[^\W\d_]+\.?(?:[-\s][^\W\d_]+\.?)*$
#         ^^^                 ^^^

请参见regex demo

© www.soinside.com 2019 - 2024. All rights reserved.