正则表达式: 规则表达式, 使用一些特定的符号来制定一个规则,使用此规则与一个字符串进行模式匹配, 匹配成功返回true,否则返回false
例子:输入手机号,验证输入的内容是一个手机号格式(11位数字 1开头)
String s = "3123123213"; 验证手机格式,需要判断每一个字符是否符合要求
代码及其注释:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo1 {
/*
正则表达式: 规则表达式, 使用一些特定的符号来制定一个规则,
使用此规则与一个字符串进行模式匹配, 匹配成功返回true,否则返回false
输入手机号,验证输入的内容是一个手机号格式(11位数字 1开头)
String s = "3123123213"; 验证手机格式,需要判断每一个字符是否符合要求
*/
public static void main(String[] args) {
/*
Pattern类
Pattern p = Pattern.compile("a*b");//定义一个规则 a*b:多个a后面一个b 例:aaaaaab
Matcher m = p.matcher("aaaab");//输入内容
boolean b = m.matches();//匹配输入与规则是否相同
System.out.println(b);
*/
/*
在String类中有一个matches()方法 字符串将去调用该方法和传入的规则进行匹配
String s = "abc";
boolean b = s.matches("a*b");
System.out.println(b);*/
/*
\d 代表一个数字:[0-9]
*/
//String s = "000ewqe0@#@";
//System.out.println(s.matches("\\d?")); //? 表示该字符串中只包含规则中的内容且出现一次或一次也没有
//System.out.println(s.matches("\\d*"));//? 表示该字符串中只包含规则中的内容且出现多次或一次也没有
//System.out.println(s.matches("\\d+"));//+ 表示该字符串中只包含规则中的内容且出现一次或多次
//System.out.println(s.matches("\\d{3}"));//{n} 表示该字符串中只包含规则中的内容且出现恰好n次
//System.out.println(s.matches("\\d{3,}"));//{n,} 表示该字符串中只包含规则中的内容且出现至少n次
//System.out.println(s.matches("\\d{3,6}"));//{n,m} 表示该字符串中只包含规则中的内容且出现 至少n次 ,最大m次
//System.out.println(s.matches("[1-9]+"));
//System.out.println(s.matches("[^1-9]+"));// ^ 不是 1-9
//验证手机号 qq号 数字 6-12 0不能开头
//String phone = "13000000001";
//System.out.println(phone.matches("1[35789]\\d{9}")); 在匹配的规则中 ,第一位是1 第二位是[35789]中的一个,后面九位是数字
//String qq = "90000000";
//System.out.println(qq.matches("[1-9]\\d{5,11}"));
String s = "qSDSw21_321e";
//System.out.println(s.matches("[a-z]+"));
//System.out.println(s.matches("[a-zA-Z]+"));
//System.out.println(s.matches("[A-z]+"));
//System.out.println(s.matches("\\w+")); //\w [a-zA-Z_0-9]
//邮箱格式 .表示任何字符 \\.进行转义 | 或
String email = "qr3423421@sina.com.cn";
System.out.println(email.matches("\\w{6,18}@\\w{2,5}\\.(com|com.cn)"));
}
}