Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式匹配字母数字代码_Regex - Fatal编程技术网

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我对正则表达式的长度有限制,这就是为什么我想知道是否可以使用组来缩短长度。无论如何,谢谢你的回答。