【发布时间】:2017-09-23 20:20:53
【问题描述】:
我正在尝试解决一个问题,我发现最好的解决方案是使用正则表达式。
我没有关于正则表达式的高级知识,所以我真的需要你的帮助。
问题是我需要按照我们在巴西使用的方式来识别字符串是电话号码还是手机,如下所示:
电话号码可以是这种格式:
0 + XX + XXXXXXXX = 01121234567
或者
XX + XXXXXXXX = 1121234567
或者
XXXXXXXX = 21234567
这里是电话号码,所以需要以 2,3,4 或 5 开头
如果是手机,它有 9 个数字,必须以 9 开头,排他性,第二个数字必须是 6,7 或 8:
0 + XX + 9XXXXXXXX = 011961234567
或者
XX + 9XXXXXXXX = 11971234567
或者
9XXXXXXXX = 981234567
因此,例如,如果我得到字符串“011984160986”、“11984160986”或“984160986”,我需要能够识别它是一部手机,电话号码也是如此。
同时我必须能够检查那个字符串“84160289”它不是一个有效的电话号码。
任何人都可以用正则表达式解决这个问题吗?
我不喜欢在我的代码中使用大量“ifs”来验证这一点。
谢谢。
【问题讨论】:
-
您说“第二个数字必须是 6,7 或 8”,但在手机示例中他们不这样做。
-
我的错,错了
-
“我正在尝试解决一个问题,我发现最好的解决方案是使用正则表达式。” Now you have two problems
标签: regex