chenchen的专栏

package pack;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Demo {public static void main(String[] args) {//method1();//匹配//method2();//切割//method3();//替换/*前面只是用了String的方法*/method4();}public static void method1() {String qq = “1881265”;String regex1 = “[1-9]\\d{4,14}”;sys(qq.matches(regex1)); //是否符合regex规则String s = “e”;//String regex = “[a-zA-Z]”; // 字母//String regex = “[a-d[m-p]]”; //a到d 或 m到p/* \d数字[0-9]* \D非数字[^0-9]* \s空白字符* \S非空白字符* \w单词字符[a-zA-Z0-9_]* \W非单词字符**** X?一次或零次* X*零次或多次* X+一次或多次* X{n} 恰好n次* X{n,} 至少n次* X{n,m} n次到m次**/String regex = “\\d”;sys(s.matches(regex));}public static void method2() {/*String s = “zhang li san”;String regex = “\\s+”;String[] arr = s.split(regex);for(String ss : arr)sys(ss);*//*String s = “zhang.li.san”;String regex = “\\.”; // \.代表正则表达式中的.即任意字符,\\.代表普通点,不能直接用.切,它是特殊字符String[] arr = s.split(regex);for(String ss : arr)sys(ss);*//*String s = “www\\abs\\1.txt”;String regex = “\\\\”;String[] arr = s.split(regex);for(String ss : arr)sys(ss);*/String s = “wekkyduffopxxxs”;//按叠词切/*按照叠词完成切割,为了让规则是结果被重用,可以将规则封装成一个组,用()完成,组都有编号,从1开始*/String regex = “(.)\\1+”; //括号是组的概念,\1是再次出现,\1+是一次或多次String[] arr = s.split(regex);for(String ss : arr)sys(ss);}public static void method3() {String s = “wj3374zns399nvn9999klf3333”; //将数字替换为#号String regex = “[0-9]”;s.replaceAll(regex, “#”);sys(s);/*String s = “wekkyduffopxxxs”; //将叠词替换为单个,如:zzzz->zString regex = “(.)\\1+”;s.replaceAll(regex, “$1”);sys(s);*/}public static void method4() {String s = “zhas asb cjcdj csj cbbdv”;String regex = “[a-z]{3}”;//将规则封装成对象Pattern p = Pattern.compile(regex);//获取匹配器对象Matcher m = p.matcher(s);sys(m.matches()); //匹配全部,为false,注意:指针向后移了,,会影响下面的结果while(m.find()) {sys(m.group()); //匹配到的字符串sys(m.start()+”…”+m.end()); //匹配到的字符串起止位}}public static void sys(Object obj) {System.out.println(obj);}}

愈想得到,就愈要放手。放手是很难的,但是别无选择。

chenchen的专栏

相关文章:

你感兴趣的文章:

标签云: