这个 REGEX 表达式的正确语法是什么?

我有以下正则表达式代码,即:

/^IT [0-9]{1,5}/(?<y1>19)?(?(y1)\d{2}|20\d{2})\((?<n1>M)?(?(n1)N|[H|B|C|D|E|G|K|M|U|N|L|S|T|V])\)$/

它旨在检查一组单词并确保其评估为:

IT 1/2014(G)

或最多 5 位数字的任何值

IT 5000/2014(MN)

但是,在 Firefox 中运行上述内容时,我不断收到以下错误:

Uncaught SyntaxError: invalid regexp group

任何帮助都将不胜感激。

loveldj13ldj 回答:这个 REGEX 表达式的正确语法是什么?

该模式包含不受支持的 if 子句。

class TestPydanticClass(BaseModel):
    model_a_values: List[ModelA]
    f4: int

    class Config:
        arbitrary_types_allowed = True

如果组 (?<y1>19)?(?(y1)\d{2}|20\d{2}) 存在,匹配 19 和 2 位数字,否则匹配 20 和 2 位数字。

可以写成y1

同样适用

(?:19|20)\d{2}

如果组 (?<n1>M)?(?(n1)N|[H|B|C|D|E|G|K|M|U|N|L|S|T|V]) 存在,则匹配 n1 否则匹配字符类中列出的其中之一。

可以写成MN


整个模式可能如下所示:

(?:MN|[HB-EGKMUNLSTV])

Regex demo

本文链接:https://www.f2er.com/13913.html

大家都在问