我有一个只有数字的文本框,我的正则表达式是:
^[1-9][0-9][0-9][48,88,51,01]$
我只想数字结束的2位数(48,88,51,01)我如何才能验证这一点,我不擅长与常规表达式:(
48,88,51,01
lx0bsm1f1#
要匹配 6个数字,前4可以是任何数字,使用C#匹配2 的组,并以48、88、51、01中的一个结尾,可以使用character class,但使用不同的符号。然后,您可以使用非捕获组作为替代项。
^[0-9]{4}(?:[48]8|[50]1)$
参见regex101 demo。或者,如果第一个数字应为1-9:
^[1-9][0-9]{3}(?:[48]8|[50]1)$
参见另一个regex demo。
tjjdgumg2#
这里你有另一种方法:
\d*(48|88|51|01)$
此正则表达式首先使用“\d*”模式匹配零个或多个数字,然后使用管道“|“运算符匹配字符串末尾的48、88、51或01(由“$”字符指示)。
iibxawm43#
要将非捕获组(?:...)与or运算符一起使用:
(?:...)
or
^[1-9][0-9][0-9](?:48|88|51|01)$
3条答案
按热度按时间lx0bsm1f1#
要匹配 6个数字,前4可以是任何数字,使用C#匹配2 的组,并以48、88、51、01中的一个结尾,可以使用character class,但使用不同的符号。
然后,您可以使用非捕获组作为替代项。
参见regex101 demo。
或者,如果第一个数字应为1-9:
参见另一个regex demo。
tjjdgumg2#
这里你有另一种方法:
此正则表达式首先使用“\d*”模式匹配零个或多个数字,然后使用管道“|“运算符匹配字符串末尾的48、88、51或01(由“$”字符指示)。
iibxawm43#
要将非捕获组
(?:...)
与or
运算符一起使用: