通用邮政编码的两个标准和单一正则表达式

时间:2018-03-13 23:06:50

标签: regex postal-code

我为邮政编码创建了一个正则表达式(非美国国家/地区),以包含两个标准..

  • 最少5个字符,最多10个字符
  • 应该只有alpha numneric,中间只有一个空格/连字符

正则表达式:^([a-zA-Z0-9] {3,10} [| - ] {0,1} [a-zA-Z0-9] {0,7})(。{5, 10})$

我不确定这是哪里出错,但这不起作用

2 个答案:

答案 0 :(得分:1)

怎么样:

(?=^\w+[ -]\w+$)^[a-zA-Z0-9 -]{5,10}$

演示:https://regex101.com/r/xqMq7o/2

故障:

  • ^[a-zA-Z0-9 -]{5,10}$设置允许的字符和大小的模式。如果不是空格/连字符要求,它可能是单独的
  • (?=^\w+[ -]\w+$)确保至少有一个空格/连字符。 (\w可以使用,因为它包含a-zA-Z0-9但不包括-。或者,可以使用[^ -]代替它。)

答案 1 :(得分:0)

在阅读了@acdcjunior和@CAustin的帖子后,我根据他们提供的正则表达式纠正了我的解决方案......

(?= ^。{5,10})^ [a-zA-Z0-9] {3,10} [| - ] {0,1} [a-zA-Z0-9] {0, 7} $

这比我最初发布的标准更多... 1.限制空格/连字符左边的最小值3,这不是强制性的 2.限制空格/连字符右边的最大值为7 3.整体长度应为5至10 4.应该是字母数字

希望这对其他人也有帮助。

再次感谢。