正则表达式仅匹配一组数字

Regex only match with set of numbers

我有一组号码在这里有身份证号码。中间的数字 -01- 必须与 01,21,22,23,24,02 匹配。目前,它只接受任何值,只要它是 2 位数字。它只需要接受这组数字01,21,22,23,24,02。有什么想法吗?

[0-9]{2}(([0-0]{1}[1-9]{1})|([1-1]{1}[0-2]{1}))(([0-0]{1}[1-9]{1})|([1-2]{1}[0-9]{1})|[3-3]{1}[0-1]{1})-[01|21|23|24|01]{2}-[0-9]{4}

身份证格式

880101-01-5332

这是我的示例正则表达式的 link:https://regex101.com/r/GYJ6by/2

对那些有限的选项使用括号。 []是针对字符集的,但是对于具体的选项,可以使用(foo|bar|baz).

[0-9]{2}(([0-0]{1}[1-9]{1})|([1-1]{1}[0-2]{1}))(([0-0]{1}[1-9]{1})|([1-2]{1}[0-9]{1})|[3-3]{1}[0-1]{1})-(01|21|23|24|01)-[0-9]{4}