1. 正则表达式的简介
正则表达式,不是Java中的语法。是一套独立的语法,在很多语言中都可以使用,包括Java。使用正则表达式主要用来做字符串的校验。校验一段字符串是否与指定的规则匹配。
2. 正则表达式的语法
// 1. 校验的原理: 逐个字符的比较
System.out.println("hello".matches("hello"));
// 2. [abc]: 可以是中括号中的任意的字符
System.out.println("hello".matches("[hH]ello"));
// 3. [a-z]: 所有的小写字母
System.out.println("hello".matches("[a-z]ello"));
// 4. [a-zA-Z]: 所有的大小写字母
System.out.println("hello".matches("[a-zA-Z]ello"));
// 5. [^abc]: 这一位的字符可以是任意字符,唯独不能是a,或者b,或者c
System.out.println("hello".matches("[^abc]ello"));
// 6. [^a-z[hws]]: 这一位的字符不能是小写字母,但是 h、w、s 除外
System.out.println("hello".matches("[^a-z[hws]]ello"));
// 7. .: 这一位的字符可以是任意的字符
System.out.println("hello".matches(".ello"));
// 8. 转义字符: \
System.out.println(".ello".matches("\\.ello"));
// 9. 预定义的特殊字符:
// \d: 所有的数字,相当于 [0-9]
// \D: 所有的非数字,相当于 [^0-9]
// \w: 所有的单词字符,相当于 [a-zA-Z0-9_]
// \W: 所有的非单词字符,相当于 [^a-zA-Z0-9_]
// 10. +: 前面的一位或者一组字符连续出现了 1 次或 多 次
System.out.println("helo".matches("hel+o"));
// 11. ?: 前面的一位或者一组字符连续出现了 0 次或 1 次
System.out.println("helo".matches("hel?o"));
// 12. *: 前面的一位或者一组字符连续出现了 0 次或 多 次(多次,包含1次)
System.out.println("heo".matches("hel*o"));
// 13. {m} : 前面的一位或者一组字符连续出现了 m 次
System.out.println("hello".matches("hel{2}o"));
// 14. {m,} : 前面的一位或者一组字符连续出现了至少 m 次
System.out.println("hello".matches("hel{2,}o"));
// 15. {m,n} : 前面的一位或者一组字符连续出现了至少 m 次,最多 n 次
System.out.println("hello".matches("hel{2,5}o"));