从正则表达式中排除字符集
Exclude set of characters from regular expression
我正在尝试提出一个正则表达式(在 Java 中)来验证给定的 String
值必须采用以下形式:
- 以 4 个大写字母开头
- 后跟 12 个字母数字字符
- 任何时候都不能包含字符
0
、1
和 L
这是我目前得到的:^(?:(?![01L])[A-Z]{4}[A-Z0-9]{12})
...但是,我仍然无法让它工作。
示例数据:
SKDNCNSK8SD30DDD
SKDNCNSK8SD31DDD
SKDNCNSK8SD3IDDD // valid
SKDNCNSK8SD3LDDD
SKDNCNSK8SD3ODDD // valid
SKDNCNSK8SD3ADDD // valid
1234567890123456
您的基本模式是正确的,但是您用来限制没有 0
、1
和 L
的否定前瞻是不正确的。尝试使用此版本:
^(?!.*[01L])[A-Z]{4}[A-Z0-9]{12}$
否定前瞻 (?!.*[01L])
表示断言 [01L]
未出现在字符串中的任何位置。
我正在尝试提出一个正则表达式(在 Java 中)来验证给定的 String
值必须采用以下形式:
- 以 4 个大写字母开头
- 后跟 12 个字母数字字符
- 任何时候都不能包含字符
0
、1
和L
这是我目前得到的:^(?:(?![01L])[A-Z]{4}[A-Z0-9]{12})
...但是,我仍然无法让它工作。
示例数据:
SKDNCNSK8SD30DDD
SKDNCNSK8SD31DDD
SKDNCNSK8SD3IDDD // valid
SKDNCNSK8SD3LDDD
SKDNCNSK8SD3ODDD // valid
SKDNCNSK8SD3ADDD // valid
1234567890123456
您的基本模式是正确的,但是您用来限制没有 0
、1
和 L
的否定前瞻是不正确的。尝试使用此版本:
^(?!.*[01L])[A-Z]{4}[A-Z0-9]{12}$
否定前瞻 (?!.*[01L])
表示断言 [01L]
未出现在字符串中的任何位置。