- \\. 相当于.
- \\w 匹配任何字类字符,包括下划线。相当于"[A-Za-z0-9_]"
- [A-Za-z0-9] 匹配任何数字和字母,不包括下划线
- \\d 相当于[0-9]
- ? 0次或1次匹配前面紧贴着的字符或表达式,相当于{0,1}
- + 1次或多次匹配前面紧贴着的字符或表达式,相当于{1,}
- * 0次或多次匹配前面紧贴着的字符或表达式,相当于{0,}
- ^ 字符串开始的位置
- $ 字符串结束的位置
- {n} 匹配n次
- {n,} 匹配n次或多次
- {n,m} 匹配至少n次,至多m次
//验证邮箱
public void testRegex() {
String s = "12_3@qq.com";
//不包括下划线,其中的{1,2}意义为可匹配a@a.com.cn
String pattern = "^[A-Za-z0-9]+@([A-Za-z0-9]+\\.){1,2}[A-Za-z0-9]+$";
//包括下划线,相当于"[A-Za-z0-9_]"
String pattern1 = "^\\w+@(\\w+\\.){1,2}\\w+$";
System.out.println(Pattern.matches(pattern, s)); //输出 false
System.out.println(Pattern.matches(pattern1, s)); //输出true
}
//验证IP地址
public static void main(String[] args) {
//有5种情况:100-199、200-249、250-155、10-99、0-9
String ipRegex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|0?[1-9]\\d|0{0,2}\\d)\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|0?[1-9]\\d|0{0,2}\\d)\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|0?[1-9]\\d|0{0,2}\\d)\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|0?[1-9]\\d|0{0,2}\\d)$";
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
System.out.println(Pattern.matches(ipRegex, sc.next()));
}
}