需求:
1.不能以0开头
2.长度在4-12之间
3.只能是数字0-9
非正则表达式为
package demo;
/**
* 正则表达demo1
*检测QQ号正确性
*1.长度
*2.非法性(0开头,非数字)
*/
public class demo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(checkQQNum("482838223"));
System.out.println(checkQQNum("1233e"));
System.out.println(checkQQNum("0123"));
}
public static boolean checkQQNum(String qq) {
boolean flag=true;
if(qq.length()>=4&&qq.length()<=11) {//长度4-11位
if(!(qq.startsWith("0"))) {
char [] arr=qq.toCharArray();
for (int i = 0; i < arr.length; i++) {
char ch=arr[i];
if(!(ch>='0'&&ch<='9')) { //非0-9
flag=false;
break;
}
}
}else {
flag=false;
}
}else {
flag=false;
}
return flag;
}
}
正则表达式
package demo;
/**
* 正则表达demo1
*检测QQ号正确性
*1.长度
*2.非法性(0开头,非数字)
*/
public class demo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String regex="[1-9]\d{3,11}";
System.out.println("12345110".matches(regex));
}
}
其中 [1-9] 表示第一个数为数字1-9中的一个;
\d{3,11}表示任意数字,长度在3-11位,即>=3 && <=11,与第一个数加起来刚好是4-12位