我需要在字符串中使用表达式来查找一系列邮政编码
当邮政编码有5个数字
时,我已经有效的表达式e.g。
邮政编码范围30000-39999
String USAPostcodeExp = @"^[0-3][0-9][0-9][0-9][0-9]$";
这适用于邮政编码31234
但有些邮政编码有5个数字,一个短划线和4个数字
e.g。邮政编码31234-1234
并且这些内容未在脚本中识别出来。
只有前5位与我们的需求相关
那么我该如何编写呢?所以要么占用额外的破折号和4位数
或者它忽略了第5位后的任何内容。
答案 0 :(得分:1)
您可以为当前正则表达式添加单词边界,而不是使用$
:
@"^[0-3][0-9][0-9][0-9][0-9]\b";
此外,您提到的范围是30000
到39999
,所以不应该是:
@"^3[0-9][0-9][0-9][0-9]\b";
相反?
缩写为:
@"^3[0-9]{4}\b";
以上将执行第二个选项:忽略第5位后的所有内容(但仍确保它是所需范围内的5位数代码)。
如果要匹配其他部分,可以使用可选组:
@"^3[0-9]{4}(?:-[0-9]{4})?$";