【发布时间】:2015-07-24 23:01:46
【问题描述】:
我必须检查一个字符串是否有以下要求:
- 具体长度为7
- 允许使用字母数字
- alpha 值之后的数值必须大于零: -- B000100 没问题 -- B000000 不行
- 单词不能以下列字符开头: -- KZ、SA、SS、HJ、S、D
我已经建立了一个正则表达式模式,但是对于以下数字大于零的 Alpha 值的问题,我遇到了问题:
有效
A000001
AB00001
A100000
A100001
ABCABCA
GR00001
GR12345
无效
12345
A000001A
A0000012A
A000000
GR00000
ABCAB00
正则表达式模式: ^(?!^KZ)(?!^HJ)(?!^S)(?!^D)(?!0{7})[A-HJ-Z0-9]{7}$
如何检查这个值?
A000000
GR00000
ABCAB00
【问题讨论】:
-
仅使用正则表达式可能会非常复杂。你愿意使用 perl 或 python 之类的东西吗?
-
如果模式中可以有多个“数字”,例如
A000B00,其中两个数字都必须非零,这对于正则表达式来说太复杂了。不要使用一个。
标签: regex