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

Two criterias and single regex for generic postal code

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

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

我不确定这是哪里出了问题,但这行不通

怎么样:

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

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

细分:

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

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

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

这比我最初发布的标准更多... 1. 限制 space/hyphen 左边至少有 3 个,这不是强制性的 2.限制space/hyphen右边最多7个 3.整体长度应为5~10 4. 应该是字母数字

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

再次感谢。