Regex 正则表达式匹配字母数字代码
我想要一个符合以下模式的正则表达式Regex 正则表达式匹配字母数字代码,regex,Regex,我想要一个符合以下模式的正则表达式 第一个字母数字字符,不包括I、O、S、Z 2-3个字符的字母数字 第4-5个字符只有BB、KA、JQ中的一个 目前我已经开发了这个模式 [^I,O,S,Z,i,o,s,z][0-9A-Za-z]{2}[AA|TN|TP]{2} 但是它考虑了不应该考虑的AI2AT。您可以使用 /^[0-9A-HJ-NP-RT-Y][A-Z0-9]{2}(?:BB|KA|JQ)$/i /^(?![IOSZiosz])[A-Za-z][A-Za-z0-9]{2}(?:BB|
- 第一个字母数字字符,不包括I、O、S、Z
- 2-3个字符的字母数字
- 第4-5个字符只有BB、KA、JQ中的一个
[^I,O,S,Z,i,o,s,z][0-9A-Za-z]{2}[AA|TN|TP]{2}
但是它考虑了不应该考虑的AI2AT
。您可以使用
/^[0-9A-HJ-NP-RT-Y][A-Z0-9]{2}(?:BB|KA|JQ)$/i
/^(?![IOSZiosz])[A-Za-z][A-Za-z0-9]{2}(?:BB|KA|JQ)$/
或
见
如果你可以使用lookaheads,你可以使用
/^[0-9A-HJ-NP-RT-Y][A-Z0-9]{2}(?:BB|KA|JQ)$/i
/^(?![IOSZiosz])[A-Za-z][A-Za-z0-9]{2}(?:BB|KA|JQ)$/
看
您当前的[^I,O,S,Z,I,O,S,Z][0-9A-Za-Z]{2}[AA|TN | TP]{2}
表达式实际上没有检查字符串的开始/结束,[^I,O,S,Z,I,O,S,Z]
求反的字符类匹配任何字符,但I
,,
,,,,,O
,O
,等,并且与字符类匹配,|
,T
,N
,P
,两次
所以
- 您可以使用
[0-9A-HJ-NP-RT-Y]
- 与最后一个字符类不同,使用非捕获组
(?:…)
和交替运算符|
(在[…]字符类中被视为文字符号|
)
- 不区分大小写的修饰符有助于稍微“收缩”模式,但如果不能使用,则可以将小写字母与大写字母加倍
(?![IOSZiosz])
负前瞻限制了通用字母数字[a-Za-z0-9]
模式,因此它既不能匹配I
,I
,o
,o
,S
,S
,z
试试这个:
(?!I,O,S,Z,i,o,s,z)[0-9A-Za-z][0-9A-Za-z]{2}(BB|KA|JQ){2}
[代码><<代码>/^[A-HJ-NP-NP-NP-RT-Y0-0-0-10-9[0-9A-Z[2}{2}(:BB|卡卡卡(124)JQ)$/i代码>如果你提供了regex风味(什么是编程语言?如果你是什么是编程语言?可能出现其他可能性。可能会出现其他可能出现其他可能性。可能出现其他可能出现其他可能性。注意,注意到在Java中,可能会出现其他可能出现其他可能出现其他可能出现其他可能性。注意,注意到在Java中,注意到在Java中,你可以使用<代码>在Java中,你可以使用<代码>[代码>^[A-A-A-Za-Za-Za-Za-Z-Z-Z-Z-Z-Z-Z和(AAAa-AAAAAAz-Z-Z-Z-Z-Z-Z-Z和(以及[Iozzzzz)$
@Wiktor Stribiżew谢谢这就是我要找的for@WiktorStribiżew我们也可以使用非捕获群(?:…)来表示[0-9A-HJ-NP-RT-Y]像not(?:I | O | S | Z)?我不明白你想用非捕获群实现什么。它只用于分组子模式,它仍然匹配并使用文本。@WiktorStribiżew我对正则表达式的长度有限制,这就是为什么我想知道是否可以使用组来缩短长度。无论如何,谢谢你的回答。