在C#中需要正则表达式以匹配“123 101st ST”等地址的街道名称

时间:2014-08-22 18:49:14

标签: c# regex

我需要在C#中使用正则表达式字符串来匹配地址类似的街道名称:

101 第二。圣 5 第1 圣 4& 5 103rd Ave.
88 44th St。

我需要确定街道部分(例如,第2,第1,第103,第44)在地址字符串中的开始位置。我已经成功地使用@“(1ST | RD | TH | ND)”在C#中找到了文本部分,但这并没有给出街道名称的数字部分开始的位置。

任何帮助都会很酷。感谢。

2 个答案:

答案 0 :(得分:1)

如果你想获得st,nd,rd和th的数字部分,你可以使用前瞻性正则表达式:

(\d+)(?=ST|RD|TH|ND)

<强> Working demo

enter image description here

如果您想要包含您可以使用的字符串的数字:

(\d+(?:ST|RD|TH|ND))

<强> Working demo

答案 1 :(得分:0)

如果您知道数据将始终以数字开头并以某些后缀(例如St.或Ave.)结尾,可能是这样的?

^(?<number>[0-9]+) (?<street>.*) (?<suffix>[^ ])$

有可能你正在使用真实地址,在这种情况下我怀疑是否存在可以处理所有变化的正则表达式。