此 REGEX 表达式的正确语法是什么?
What would the correct syntax be for this REGEX expression?
我有以下 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
如有任何帮助,我们将不胜感激。
该模式包含不受支持的 if 子句。
(?<y1>19)?(?(y1)\d{2}|20\d{2})
如果组 y1
存在,则匹配第 19 位和第 2 位数字,否则匹配 20 位和第 2 位数字。
可以写成(?:19|20)\d{2}
同样适用于
(?<n1>M)?(?(n1)N|[H|B|C|D|E|G|K|M|U|N|L|S|T|V])
如果组 n1
存在,则匹配 MN
否则匹配字符 class 中列出的其中一个。
可以写成(?:MN|[HB-EGKMUNLSTV])
整个模式可能如下所示:
^IT [0-9]{1,5}\/(?:19|20)\d{2}\((?:MN|[HB-EGKMUNLSTV])\)
我有以下 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
如有任何帮助,我们将不胜感激。
该模式包含不受支持的 if 子句。
(?<y1>19)?(?(y1)\d{2}|20\d{2})
如果组 y1
存在,则匹配第 19 位和第 2 位数字,否则匹配 20 位和第 2 位数字。
可以写成(?:19|20)\d{2}
同样适用于
(?<n1>M)?(?(n1)N|[H|B|C|D|E|G|K|M|U|N|L|S|T|V])
如果组 n1
存在,则匹配 MN
否则匹配字符 class 中列出的其中一个。
可以写成(?:MN|[HB-EGKMUNLSTV])
整个模式可能如下所示:
^IT [0-9]{1,5}\/(?:19|20)\d{2}\((?:MN|[HB-EGKMUNLSTV])\)