正则表达式的几种类型

前端之家收集整理的这篇文章主要介绍了正则表达式的几种类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
【匹配】matchs方法 package regex; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { //以下所有测试均为true //简单认识正则表达式的概念 /*System.out.println("abc".matches("...")); p("a2427847dhsj".replaceAll("\\d","-")); Pattern pa = Pattern.compile("[a-z]{3}"); //{3,}至少3个 {1,10}1到10之间 Matcher m = pa.matcher("hjk"); p(m.matches());*/ //上面三句可以用 p("hjk".matches("[a-z]{3}");); //初步认识 . * + ? /*p("a".matches(".")); p("".matches("a*"));//引号内是0个或多个字符 p("1".matches("\\d+"));//引号内1个或多个数 p("".matches("a?"));//引号内0个或1个 p("192.168.1.220".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1}\\.\\d{3}")); p("138".matches("[0-9][0-9][0-9]"));*/ //认识范围 /*p("a".matches("[abvc]"));//取中括号里面的 p("a".matches("[^abvc]"));//【该测试为false】取除了括号里面的任意一个字符,注意一个中括号只能匹配一个字符 p("a".matches("[a-zA-Z]"));//取a-z或A-Z p("a".matches("[a-z]|[A-Z]"));//取a-z或A-Z p("a".matches("[a-z[A-Z]]"));//取a-z或A-Z p("R".matches("[A-Z&&[RFG]]"));//取a-z并且是RFG三者之一 */ //认识\S \W \D \ /* p("1".matches("\\d"));//0-9 p("a".matches("\\D"));//除0-9外任意字符 p(" \n\t\r".matches("\\s{4}"));//空白字符 p("asd".matches("\\S{3}"));//无空白字符 p("asd_2".matches("\\w{5}"));//单词[a-zA-Z_0-9] p("-----".matches("\\W{5}"));//除了单词[a-zA-Z_0-9]之外 p("\\".matches("\\W")); p("\\".matches("\\\\")); */ //posix style //p("a".matches("\\p{Lower}")); //认识边界 /*p("hello world".matches("^h.*"));//^表示一行的开头,开头一个字符是h后面跟0或多个字符 p("hello world".matches("^h.*ld")); p("hello world".matches("^h.*ld$"));//$是行的结尾 p("hello world".matches("^h\\w{3}o\\b.world"));//\b是单词结尾回车,空格都算 */ //认识空白行 System.out.println("aaa sds".matches(".*sds$")); p(" \n".matches("^[\\s&&[^\\n]]*\\n$"));//^在[]外面表示行首,里面表示非 。判断行首为空格但不是换行 } public static void p(Object o){ System.out.println(o); } } 【切割】split方法 public class Demo { public static void main(String[] args) { splitDemo(); } public static void splitDemo(){ String str = "hello dad dgdhgd rr";//如果是多个空格,下面按照每(多)个空格切,则每(多)个空格切一次 String reg = " ";//多个空格可以" +" //String reg = ".";//如果用特殊符号切割需要转义"\\." String[] arr = str.split(reg); for(String s:arr){ System.out.println(s); } } } 【按叠词切割】 public class Demo { public static void main(String[] args) { splitDemo(); } public static void splitDemo(){ String str = "sdjjkssskrreooa"; String reg = "(.)\\1+";//()可以蒋某字符封装成组,从1开始 String[] arr = str.split(reg); for(String s:arr){ System.out.println(s); } } } 【替换】replaceAll方法 【替换将重复出现的字符替换成一个】 public static void replaceDemo(){ String str = "sdjjkssskrreooa"; String reg = "$1";//通过$1获取封装的第一个组 String arr = str.replaceAll("(.)\\1+","$1"); System.out.println(arr); } 【获取获取指定规则的字符串 package regex; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Demo { public static void main(String[] args) { get(); } public static void get(){ String str = "sdhj kif lkj hdys"; String reg = "\\b[a-z]{3}\\b"; //将规则封装成对象 Pattern p = Pattern.compile(reg); //让正则对象和要作用的字符串关联,获取匹配器对象。 Matcher m = p.matcher(str); //讲规则作用到字符串上,并进行伏虎规则的子串查找 while(m.find()){//find相当于一个迭代器,每次查找完之后向后迭代 System.out.println(m.group());//获取匹配后的结果 System.out.println(m.start()+"..."+m.end());//查看获取字符偏移量 } } } 原文链接:https://www.f2er.com/regex/359833.html

猜你在找的正则表达式相关文章