package com.cx.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
// . 匹配除"\r\n"之外的任何单个字符
println("abc".matches("..."));
// /d匹配一个数字
println("dba2848f".replaceAll("\\d","-"));
// Pattern类,Pattern表示一个字符串要被匹配的一个模式,将模式先编译好再去匹配字符串,匹配速度会更快。
// compile()将参数正则表达式进行编译,然后放到模式中
Pattern pattern = Pattern.compile("[a-z]{3}");// 匹配3个字符,每个字符属于a-z
// 去匹配某一个字符串,结果保存在Matcher对象中
Matcher matcher = pattern.matcher("abdc");
println(matcher.matches());
// * 的作用是0次或多次匹配前面最近的一个字符或子表达式,相当于{0,}
println("zooo".matches("zo*")); // true
println("z".matches("zo*")); // true
// .*搭配使用,是匹配任意数量的任意字符
println("zook".matches("zo.*"));
// + 一次或多次匹配前面的字符或子表达式,相当于{1,}
println("wa".matches(".+wa.*")); // false
println("okwa".matches(".+wa.*")); // true
println("2790".matches("\\d+"));
//===============范围==================
// 1. 中括号[abc]:表示匹配中括号中的某一个字符
// 2. [^abc]:表示匹配除了括号内字符之外的任意一个字符
println("a".matches("[abc]")); // true
println("ab".matches("[abc]")); // false:只能匹配一个
println("a".matches("[^bcd]")); // true
println("b".matches("[^bcd]")); // false
println("bc".matches("[^bcd]")); // false 中括号只匹配一个字符
// [a-z]表示匹配26个小写英文字母中的一个.[A-Z]表示匹配26个大写英文字母中的一个
println("a".matches("[a-z]")); // true
// [a-zA-Z] <=> [a-z][A-Z],表示匹配[a-z]或[A-Z]中的一个字符
println("a".matches("[a-zA-Z]")); // true
// 表示匹配a-z并且是OK其中之一的一个字符
println("K ".matches("[a-z]&&[OK]]")); // true
// =============\ \ \ \ \
// \d : 匹配一位数字,大写于小写作用相反
// \D : 匹配除了0-9之外的任意字符
// \s : 匹配任何空白字符 : \t,\n,\x0B,\f,\r, 大写S与小写作用相反
// \w 匹配任何字类字符,包括下划线。与"[A-Za-z0-9_]"等效,W与w作用相反
println("dd".matches("\\D")); // false 匹配一位
println("a".matches("\\D"));
println(" ".matches("\\s")); // true
println(" \t\n\r".matches("\\s{4}")); // true
println("wye6_dn".matches("\\w+")); // true
println("abc666#$\\".matches("[a-z]{1,5}\\d+[#$%&^]+\\\\")); // true
// ^ :定义了输入字符串开始的位置,以空白字符开始但不能以换行符开始,以\n结尾
println(" \f\t\r\n".matches("^[\\s&&[^\\n]]*\\n")); // true
// ==============匹配email===============================
String patternEmail = "[\\w[.-]]+@[\\w+[._]]+\\.[\\w]+";
// =====================示例========================================
Pattern pattern1 = Pattern.compile("\\d{3,5}");
String str1 = "123-456-789";
Matcher matcher1 = pattern1.matcher(str1);
// find() 方法的作用是找一个子串能够匹配pattern,找到返回true,
matcher1.find();
}
private static void println(Object obj){
System.out.println(obj);
}
}