package com.collection.regex;
import org.junit.Test;
/*
正则表达式:正则表达式其实就是用于操作字符串的一个规则,使用特殊的符号表示;
需求:
校验一个QQ号:
1、不能以0开头;
2、长度为5~12位;
3、只能由数字组成;
*/
public class Demo1 {
// String qq = "123";
// String qq = "01234567";
// String qq = "123abc4567";
String qq = "1234567";
// 该方法可以实现,但是太复杂,太麻烦
@Test
public void test1(){
if (!qq.startsWith("0")){
if (qq.length() >= 5 && qq.length() <= 12){
try {
Long.parseLong(qq);
System.out.println("合法QQ");
} catch (Exception e) {
System.out.println("非法QQ,QQ只能由数字组成");
}
}else{
System.out.println("非法QQ,QQ长度必须为5~12位");
}
}else{
System.out.println("非法QQ,QQ不能以0开头");
}
}
// 使用正则表达式进行校验
@Test
public void test2(){
System.out.println(qq.matches("[1-9]\\d{4,11}")?"合法QQ":"非法QQ");
}
}
package com.collection.regex;
import org.junit.Test;
/*
* 正则表达式规则:
*/
public class Demo2 {
/*
预定义字符类:
. 任意字符
\d 数字:[0-9]
\D 非数字:[^0-9]
\s 空白字符:[\t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-z_0-9]
\W 非单词字符:[^\w]
注意:任何预定义字符在没有加上数量词之前,都只能匹配一个字符而已;
*/
@Test
public void test1(){
System.out.println("------------ . -------------");
// . 任意字符:只能匹配单个字符
System.out.println("1".matches(".")); // true
System.out.println("a".matches(".")); /