正则表达式 - 有六位数字,以 0、1 或 2 开头

Posted

技术标签:

【中文标题】正则表达式 - 有六位数字,以 0、1 或 2 开头【英文标题】:Regex - has six digits, starts with 0, 1, or 2 【发布时间】:2016-04-07 02:59:08 【问题描述】:

我需要一个匹配包含六位数字的数字的正则表达式。第一个数字必须是 0、1 或 2。

例如 - 054654 或 198098 或 265876。

到目前为止,我得到了这个:/^\d6$/ - 匹配一个包含六位数字的数字。如何添加第二个要求:第一个数字必须是 0、1 或 2?

【问题讨论】:

阅读正则表达式教程。 懒我得到不好的代表:) 【参考方案1】:

你可以只使用一个字符类:

/^[012]\d5$/

这告诉正则表达式引擎只匹配几个字符中的一个,在本例中为012。要创建字符类,请将要匹配的字符放在方括号之间。

【讨论】:

我没有投反对票,但您使用的字符类错误。我会编辑。 你不明白什么是字符类以及它是如何工作的。 我删除了/g 修饰符,因为需要完整的字符串匹配,并且只能匹配一次。【参考方案2】:

因此,您编写的正则表达式 /^\d6$/ 仅匹配开始和结束的 6 个数字。您必须在 | 开头添加 (0|1|2)表示或,最后是 /^(0|1|2)\d5$/ 或 /^[012]\d5$/。

【讨论】:

【参考方案3】:

这应该做你想做的:

/^(0|1|2)[0-9]5$/

| 表示or

【讨论】:

【参考方案4】:
/^(0|1|2)\d5$/ 

应该可以的

【讨论】:

这也可以,谢谢!我应该使用哪个答案? 您应该使用/^[012]\d5$/,因为具有交替的版本(如本答案所示)涉及更多的回溯,因此效率较低。但是,您可能会追求可读性,在这种情况下,您可以使用此答案中的模式。

以上是关于正则表达式 - 有六位数字,以 0、1 或 2 开头的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式验证文本框只能输入数字和小数点

正则表达式验证文本框只能输入数字和小数点

营业执照编号 正则表达式

一些常用的正则表达式

求一个正则表达式只能输入数字小数点后两位和

正则表达式 验证数字格式 非负数 小数点后保留两位 数字正则 double正则