Java 学习笔记 正则表达式
2019.3.27 正则表达式
- \w 单词字符,匹配[]a-zA-Z_0-9]
- \w{3} 表示匹配3个字符()ab8,abc,a_c,a5_...)
- \w+ 至少一个,1到多个
- \w* 0个到n个
- ^ 行的开头
- $ 行的末尾
- a*b a的个数可以有无数个,例如可以匹配aaaab
- [abc] abc中任有一个 可以
- [abc]* abc中任意有一个或者多个都可以,都可以,例如abc,a,bca,bca,cbaccb...
- [abc]{3} 有三个字符都是abc中的任意一个,都可以匹配成功 abc,abb,acc...
- 去重
- (.)\1+ 向后引用
- $1 第一个分组的引用
jjjkkkkk
(.)当作为第一个j,\1相当于j的引用,有1个或多个(上面就是有3个j),之后把符合的全部替换为$1(也就是第一个j),括号之间的.代表任何字符,包括空格等
String s = "jjjkkk";
String news = s.replaceAll("(.)\\1+)","$1");
String s = "hello jack";
String s1 = s.replaceAll("( )\\1+", " ");//去除多余的空格
System.out.println(s1);
有转义
val regex = Regex("[\\u4e00-\\u9fa5]+\\w?\\s?(publish)+")
println(regex.matches("我publish")) //true
println(regex.matches("我mpublish")) //true
println(regex.matches("我m publish")) //true