浅谈String的正则表达式
public static void main(String[] args) {
//匹配字符串abc
String str="abc";
/*System.out.println(str.equals("abc"));
System.out.println("abc".equals(str));*/
//1.给定匹配规则
Pattern p=Pattern.compile("abc");
//2.指定匹配的对象
Matcher m=p.matcher(str);
//3.做匹配
System.out.println(m.matches());
}
public static void main(String[] args) {
String s="3";
//System.out.println(s.matches("abc"));
//匹配小写英文字母
//[起始,结束]---范围其中的一个
//System.out.println(s.matches("[a-z]"));
//匹配数字
//?---前面的字符最多出现一次 <=1
System.out.println(s.matches("\\d?"));
//匹配除x/y/z其他的字符
//[^]---取反
System.out.println(s.matches("[^xyz]"));
}
public static void main(String[] args) {
//
String s="\t";
//.代表一个任意字符
//System.out.println(s.matches(".."));
//匹配.---\\.--字符串转正则--\.-正则转义--.
//.---小数、文件
//System.out.println(s.matches("\\."));
//匹配\---\\\\--字符串转正则--\\--正则转义--\
//\---文件的位置
//System.out.println(s.matches("\\\\"));
//
System.out.println(s.matches("\\\t"));
}
public static void main(String[] args) {
String s="aaaaavbeuirgvb";
//匹配以小写英文字母开头,数字结尾,最少3个字符组成的字符串
//System.out.println(s.startsWith("a")&&s.endsWith("b")&&s.length()>=3);
//类似于+的这种符号控制字符出现个数---数量词
//数量词修饰的是前面的字符
//+---前面的字符最少出现一次 >=1
//System.out.println(s.matches("[a-z].+\\d"));
//匹配以a开头,以数字结尾最多3个字符
//?---前面的字符最多出现一次 <=1
//System.out.println(s.matches("a.?[0-9]"));
//匹配以a开头,以b结尾的字符串
//*---前面的字符可以不出现也可以出现多次
//>=0
//System.out.println(s.matches("a.*b"));
//匹配5个a的字符串
//{}---表示前面的字符具体出现多少次
//System.out.println(s.matches("a{5}"));
//匹配最少10个字符
//{,}--左边是最小,右边是最大
//System.out.println(s.matches(".{10,}"));
//没有最小区间
//System.out.println(s.matches(".{,10}"));
//范围--身份证、密码
System.out.println(s.matches(".{3,6}"));
}
public static void main(String[] args) {
String s="高高兴兴";
//匹配字符串出现ab
//System.out.println(s.matches(".*ab.*"));
//匹配两个ab
//()---捕获组 \\n---拿到n编号的捕获组的内容
//System.out.println(s.matches(".*(ab).*\\1.*"));
//匹配叠字 啊啊啊啊啊啊
//System.out.println(s.matches("(.)\\1+"));
//ABAB---来吧来吧
//System.out.println(s.matches("(..)\\1+"));
//AABB---高高兴兴
//System.out.println(s.matches("(.)\\1(.)\\2"));
/*捕获组是(开始编号
* (A(B(CD))E)F(G)
* 1 A(B(CD))E
* 2 B(CD)
* 3 CD
* 4 G
* */
}
public static void main(String[] args) {
String s="我我我我我爱爱爱爱爱爱学学学习";
//替换
//System.out.println(s.replace("a", "A"));
//通过正则匹配内容进行多次替换
//System.out.println(s.replaceAll("[a-z]", "+"));
//对字符串的数字进行排序
/*String str=s.replaceAll("\\D", "");// \\d数字 \\D非数字
char[] cs=str.toCharArray();
Arrays.sort(cs);
System.out.println(Arrays.toString(cs));*/
//|---前后没有关系---[]---里面不能出现数量词
//System.out.println(s.replaceAll("[-+]", "+")); // + >=1
//不再一个表达式需要通过$才能拿到前面捕获组的内容
//System.out.println(s.replaceAll("(tom)(.*)(jack)", "$3$2$1"));
//变单字
System.out.println(s.replaceAll("(.)\\1+", "$1"));
}