我希望电话号码为“0”后跟10位手机号码(或)0091,10位手机号码(或)+91后跟10位数字。
1)0跟随和+91以下的数字正在使用以下正则表达式我也希望0091跟随数字工作,我的正则表达式是:
"^([0]|(?:[0][0]|\\+)(91))([7-9]{1})([0-9]{9})$";
你能否建议我使用正则表达式。
答案 0 :(得分:7)
你似乎想要的确切正则表达式(基于你到目前为止所尝试的)是:
^(?:0091|\\+91|0)[7-9][0-9]{9}$
作为一般提示,为了自己解决这个问题,我建议您使用RegExr或RegexPal等网站
将其设置为多行模式(以便^
和$
在每行末尾匹配)然后添加0091
,+91
和{{1}进入单独行的输入框 - 所以你有something like this。
然后尝试制作一个匹配该部分的正则表达式,在您的情况下,您需要类似
的内容0
注意:在RegExr上你不必转义反斜杠(所以当你在java中使用正则表达式时,你需要通过转义它们)。
答案 1 :(得分:2)
猜猜这个正则表达式会起作用:
^((0091)|(\+91)|(0))([7-9]{1})([0-9]{9})$
答案 2 :(得分:1)
如果您使用的是Android,则可以使用以下方法:
PhoneNumberUtils.isGlobalPhoneNumber("+91.......)
如果您真的想使用正则表达式,请尝试做类似的事情:
if (match("^0[0-9]{9}") || match("^+91[0-9]{10}") || match("^0091[0-9]{9}"))
答案 3 :(得分:0)
使用以下代码(test.matches(..)是重要部分):
String test = "00911234567891";
System.out.println(test.matches("(0091|0|\\+91)[7-9][0-9]{9}"));
答案 4 :(得分:-1)
这个正则表达式应该可行。
您可以使用^([0]|\+91)?\d{10}
作为0
或+91
和10
数字后面的数字。