我的 reg ex 技能几乎为零,我试图将一个字段匹配为正好有 7 个或 9 个数字(不在 7 或 9 之间,所以没有 8 个数字是无效的)。
我试过了(不要笑)
/^([0-9]{7} | [0-9]{9})
和
/^([0-9]{7 | 9})
如果有人可以提供帮助并解释将不胜感激的答案。
我假设(可能是错误的)我使用什么(编程)语言并不重要
谢谢
我的 reg ex 技能几乎为零,我试图将一个字段匹配为正好有 7 个或 9 个数字(不在 7 或 9 之间,所以没有 8 个数字是无效的)。
我试过了(不要笑)
/^([0-9]{7} | [0-9]{9})
和
/^([0-9]{7 | 9})
如果有人可以提供帮助并解释将不胜感激的答案。
我假设(可能是错误的)我使用什么(编程)语言并不重要
谢谢
/^\d{7}(?:\d{2})?$/
\d
是现代正则表达式的简写[0-9]
,使用(?:
可防止发生您不希望或不需要的组捕获。
您的第一种方法有效。只需省略空格,添加 a$
以匹配字符串结尾和尾部斜杠分隔符。您也可以[0-9]
用快捷方式替换\d
:
/^(\d{7}|\d{9})$/
七位或九位数字是七位数字,可选地后跟两位数字:
[0-9]{7}([0-9]{2})?
使用这个正则表达式^\d{7}(\d{2})?$
这在您使用的编程语言中可能更容易完成,但也可以在正则表达式中实现。看看这个链接:正则表达式将字符数限制为 10
如果您只删除空格(以及可选的括号),您的第一个将起作用。