2016-06-13 80 views
2

我一直在试图让一个正则表达式我的手机,但我似乎无法得到它的工作:正则表达式检查长度

这里是我的正则表达式的条件:

  • 必须09
  • 总长度开始为9

这里是我的正则表达式:

[0]{1}[9]{1}[0-9]{7} 

有效移动号码091123456

无效移动号码0991234567 || 09912345

+7

使用锚'^ 09 [0-9] {7} $' – anubhava

+0

对于更多的参考“[正则表达式在Java的手机号码](http://howtodoinjava.com/regex/java-regex-validate-international-phone-numbers/)” –

回答

4

最简单的方法:

^09[0-9]{7}$ 

说明:

^09 =>开始于09

[0-9] =>任何字符0至9之间

{ 7}正好七次

$ =>结束最新组([0- 9] {7})

1

如果使用matcher.contains()而不是matcher.find(),它将匹配整个字符串,而不是尝试查找匹配的子字符串。或者您可以添加^$锚点,如其他答案中的建议。

如果不这样做真的需要使用正则表达式,或许会更具可读性只使用

string.startsWith("09") && string.length() == 9