正则表达式 - 字母数字的特定长度和数字大于零

时间:2015-07-24 12:13:06

标签: regex

我必须检查字符串是否符合以下要求:

  • 特定长度为7
  • 允许使用字母数字
  • alpha值后的数字值必须大于零: - B000100还可以 - B000000不行
  • 单词无法开始以下字符: - KZ,SA,SS,HJ,S,D

我已经构建了一个正则表达式模式,但是对于Alpha值以下数字大于零的问题我有问题:

VALID

A000001

AB00001

A100000

A100001

ABCABCA

GR00001

GR12345

INVALID

12345

A000001A

A0000012A

A000000

GR00000

ABCAB00

正则表达式: 的 ^(?!^ KZ)(?!^ HJ)(?!^ S)(?!^ d)(?0 {7})[A-HJ-Z0-9] {7} $ < /强>

如何检查此值?

A000000

GR00000

ABCAB00

1 个答案:

答案 0 :(得分:1)

这个正则表达式^(?!KZ|HJ|S|D|([A-HJ-Z]+)?0+$)[A-HJ-Z0-9]{7}$会这样做。请参阅demo

正则表达式的作用是在行开始后确保以下条件都不匹配

  • KZ
  • HJ
  • S
  • D
  • ([A-HJ-Z]+)?0+$这个确保你不能拥有0直到行结束时才能使用char。

它是原始负向前瞻的修改版本,为了清晰起见,进行了交替压缩。