正则表达式街道号码分隔符

时间:2017-08-10 11:43:47

标签: c# regex street-address

我有一个地址字段,我想在街道名称和房屋号码后缀中分开,地址(街道名称)的第一部分不是问题,但是房屋号码后缀的第二部分有点棘手。
粗体是我要选择的部分:

  • 第一街 25
  • 第一街 25 a
  • 第一街 25b
  • 第一街 25-ab

这是我在c#中使用的正则表达式代码只输出门牌号后缀,但到目前为止没有选择粗体部分的运气:

{
  string sNum = AdField;
  string sRep = @"\s(\d[^\s]*[ A-Z]\w*)?(\d\w\s)\s?(.+)";
  string output = Regex.Match(sNum, sRep).Value;

  return output;
} 

2 个答案:

答案 0 :(得分:4)

我认为你可以用这个demo来做到这一点 正则表达式是

'/^[\w-]{1,30}\z/'

答案 1 :(得分:0)

[a-z]+ ?([0-9]+ ?\-?[a-z]{0,2})

<强> Explaination

[a-z]+

抓住街道名称的最后一部分

 ?

观察?前面的空格意味着1或0个空格

[0-9]+

1个或更多数字

 ?

另一个可选空间

\-?

可选短划线( - )

[a-z]{0,2}

0到2个字母