正则表达式具体规则

Mok*_*iah 0 php regex perl postal-code

我需要使用正则表达式重新创建这个逻辑.

如果$ postcode.length> 0和$ postcode.length <10 AND $ postcode的第一个字符是一个字母而(第二个或第三个字符是一个数字)那么它就是一个匹配.

我想出了以下正则表达式:

/((^ [AZ] + [0-9] [0-9]){1,9} $)/ I

它需要匹配这些示例:

  • B1 8PT
  • SW12 TQ1
  • B12 TYP
  • A1AAAAAAA
  • AA1AAAAAA

编辑:我当前的正则表达式与列表中的任何示例都不匹配.我无法理解为什么.任何帮助,将不胜感激.

Luc*_*ski 5

这是一种模式:

^[A-Z](?=.?\d)[A-Z0-9 ]{0,8}$
Run Code Online (Sandbox Code Playgroud)

演示.

我使用前瞻(?=.?\d)来检查第二个或第三个字符,看它是否是一个数字.