急。。。正则表达式的一个问题
小弟在做一个正则表达式的验证,验证电话号码:规则是区号加8位座机号,或者8位座机号,暂时不考虑区号的开头之类的问题。有一个问题:^([0-9]{4}[-][0-9]{8})|([0-9]{8})$ 这个正则表达式为可以匹配区号加8位座机号(0531-88526314),也可以直接匹配8位座机号(88215632),但是如果是超过8位的纯数字(8826314523654)为什么也可以匹配呢?我试过将“|”前后的内容交换,但是无效,求高手指点,小弟初学,轻拍
------解决方案--------------------^([0-9]{4}[-][0-9]{8})$|^([0-9]{8})$
------解决方案--------------------Java code
^[0-9]{4}-[0-9]{8}$|^[0-9]{8}$