我可以使这个Phone Validator Regex更有效吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以使这个Phone Validator Regex更有效吗?相关的知识,希望对你有一定的参考价值。
我几天前开始乱用Regex,今天我被要求制作一个快速的正则表达式。 (创建高效的正则表达式真的是一种艺术吗?)
所以我写了这个简单的正则表达式以匹配以色列电话号码:^05[23489]-?[\d]{3}-?[\d]{4}$
但是它能完成在1或2秒内完成大约10,000个电话号码验证的工作吗?我这里没有电脑所以我无法查看。谢谢你的改进!
匹配规则是:
- 从05开始,然后是0,2,3,4,8,9中的一个
- 然后选择连字符
- 然后是3位数
- 那么可选' - '
- 最终来4位数。
有效电话号码的几个示例:
- 052-587-6549
- 0531432941
- 058-3219321
- 059-321-1353
答案
[23489]
不包括0
。此外,用字符类括号\d
= [\d]
包装单个\d
不是一个好主意。
使用
^05[023489]-?\d{3}-?\d{4}$
^
在Java中,如果您使用带有^
方法的模式,则不需要$
和.matches()
锚点,因为它需要完整的字符串匹配。
if (phone.matches("05[023489]-?\\d{3}-?\\d{4}")) {
// This is valid
}
以上是关于我可以使这个Phone Validator Regex更有效吗?的主要内容,如果未能解决你的问题,请参考以下文章