正则表达式
# 基本用法
案例:
"123".matches("\\d*") //true
"a12".matches("\\w+") // true
"a12".matches("\\w?12")//true
"12".matches("\\d{2}")//true
"12".matches("\\d{3}")//false
"a12".matches("\\w{1,3}")//true
"a123".matches("\\w{1,3}")//false
# 复杂匹配
# 开头结尾
^表示匹配字符串的开头,$表示匹配字符串的结尾;
只匹配完全符合要求的字符串,而不是匹配字符串中的某个子串;
案例:
匹配一个字符串是否以数字开头;
String regex = "^\\d.*";
1.*表示匹配任意数量的字符;
匹配一个字符串是否以字母结尾;
String regex = ".*[a-zA-Z]$";
1[a-zA-Z]表示匹配一个字母字符;
# 限定范围匹配
当我们使用 \d 来作匹配时, 匹配结果是0到9,而我只想要3到5咋办?
案例:
// 直接将匹配项写在中括号中
System.out.println("a34".matches("[abc][345][345]")); // true
// 使用-表示 多少 到 多少
System.out.println("a34".matches("[a-c][3-5][3-5]")); // true
// 可以与重复匹配符搭配使用
System.out.println("a34".matches("[a-c][3-5]+")); // true
1
2
3
4
5
6
2
3
4
5
6
^表示排除:
System.out.println("a34".matches("[^ac]34")); // false
System.out.println("z34".matches("[^ac]34")); // true
1
2
2
# 搜索与替换
# 分割字符串
"a b c".split("\\s"); // { "a", "b", "c" }
"a b c".split("[\\s]+"); // { "a", "b", "c" }
"a, b ;; c".split("[\\,\\;\\s]+"); // { "a", "b", "c" }
1
2
3
2
3