博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则例子
阅读量:4594 次
发布时间:2019-06-09

本文共 5152 字,大约阅读时间需要 17 分钟。

package org.cd.regex;//汉字范围u4E00-u9FA5  import java.util.regex.Matcher;  import java.util.regex.Pattern;  /** *  * @author cd * @date 2018年12月27日 下午5:03:51 * @desc 正则的使用   */public class sxtRegex01 {     public static void main(String[] args) {                       p("检查是否匹配:"+"abc".matches("..."));                            p("替换字符串:"+"abc123aa".replaceAll("\\d", "."));                            Pattern p = Pattern.compile("[a-z]{3}");              Matcher m = p.matcher("fgha");              p("Pattern+Matcher方法验证匹配:"+m.matches());                            p("------------------");                            p("a".matches("[abc]"));              p("a".matches("[^abc]"));              p("A".matches("[a-zA-Z]"));              p("A".matches("[a-z]|[A-Z]"));              p("A".matches("[a-z(A-Z)]"));              p("R".matches("[A-Z&&(RFG)]"));                            p("------------------");                            p("a_8".matches("\\w{3}"));              p("\\".matches("\\\\"));                            p("------------------");                            p("hello sir".matches("h.*"));              p("hello sir".matches(".*ir$"));              p("hello sir".matches("^h[a-z]{1,3}o\\b.*"));//匹配单词边界,单词边界是空格出现的位置用\\b匹配              p("hellosir".matches("^h[a-z]{1,3}o\\b.*"));              p(" \n".matches("^[\\s&&[^\\n]]*\\n$"));//开头是一个空格,且不能是换行符,最后必须是换行                            p("------------------");                            Pattern p2 = Pattern.compile("\\d{3,5}");              String s = "123-4536-89789-000";              Matcher m2 = p2.matcher(s);                            p(m2.matches());              m2.reset();//把吃进去的字符吐出来重新匹配,否经过m2.matches会吃进去字符 下面的匹配就不成功              p(m2.find());              p(m2.start()+"-"+m2.end());//找到了 就把首位位置打印下(必须找到才能打印)              p(m2.find());              p(m2.start()+"-"+m2.end());              p(m2.find());              p(m2.start()+"-"+m2.end());              p(m2.find());                            p(m2.lookingAt());//每次都是才头上开始找                            p("------------------");                            Pattern p3 = Pattern.compile("java",Pattern.CASE_INSENSITIVE);//加属性后,Patter.CASE_INSENSITIVE表示大小写不管              Matcher m3 = p3.matcher("java_Java_jAva_jAVa_IloveJava");              p(m3.replaceAll("JAVA"));//把所有的都替换为大写的                            p("------------------按照单双数替换");              Pattern p4 = Pattern.compile("java",Pattern.CASE_INSENSITIVE);//加属性后,Patter.CASE_INSENSITIVE表示大小写不管              Matcher m4 = p4.matcher("java_Java_jAva_jAVa_IloveJava fdasfas");                            StringBuffer sb = new StringBuffer();              int i = 0;              while(m4.find()){                  i ++;                  if(i%2 == 0){                      m4.appendReplacement(sb, "java");                  }else{                      m4.appendReplacement(sb, "JAVA");                  }              }              m4.appendTail(sb);//把尾巴在再添加到buf上既是sb              p(sb);                            p("------------------分组加括号只取数字一组");              Pattern p5 = Pattern.compile("(\\d{3,5})([a-z]{2})");              Matcher m5 = p5.matcher("123bb_78987dd_090po");                            while(m5.find()){                  p(m5.group(1));//grop括号里面第0组是整体,第一组是左起第一个括号,第二组是左起第二个括号              }                            p("------------------贪婪的匹配与不贪婪匹配");              Pattern p6 = Pattern.compile("(.{3,10}?)[0-9]");//.{3,10}后面没问号就是贪婪匹配会陪到最长,如果{3,10}?加?号就是懒蛋匹配之匹配最少的,从3个开始找              Matcher m6 = p6.matcher("aaaa5dddd8");              while(m6.find()){
//如果这里用if(m6.find)(){p(m6.start()+"-"+m6.end());} 那么之匹配第一个 p(m6.start()+"-"+m6.end()); } p("------------------普通捕获"); Pattern p7 = Pattern.compile(".{3}"); Matcher m7 = p7.matcher("ab4dd5"); while(m7.find()){ p(m7.group()); } p("------------------非捕获组"); Pattern p8 = Pattern.compile(".{3}(?=a)");//(?=a)这个是非捕获组的意思,最后一个是a而且还不把这个a取出来!!(?=a)这个要是写在前面 就不一样了 Matcher m8 = p8.matcher("ab4add5"); while(m8.find()){ p("后面不能是a的"+m8.group()); } p8 = Pattern.compile("(?!a).{3}");//(?!a)前面不能是a的 m8 = p8.matcher("abbsab89"); while(m8.find()){ p("前面不能是a的"+m8.group()); } //(?
<号匹配"); pattern p9="Pattern.compile("(?!">
).+(?=<)"); Matcher m9 = p9.matcher(">编程中国<"); while(m9.find()){ p(m9.group()); } p("------------------向前引用"); Pattern p10 = Pattern.compile("(\\d\\d)\\1");//这里面的1是向前引用,12是第一匹配到的,下一次在匹配出来12和前面相同 所以是true Matcher m10 = p10.matcher("1212"); p(m10.matches()); p("------------------忽略大小写,正则内嵌");//(?i)非捕获组里面这个表示忽略大小写 p("java".matches("(?i)JAVA")); } public static void p(Object o){ System.out.println(o); } }

 

转载于:https://www.cnblogs.com/iathanasy/p/10186063.html

你可能感兴趣的文章
S3C2440的LCD虚拟显示测试
查看>>
大小端格式
查看>>
阅读书籍电技术
查看>>
互联网时代的报纸收费与读者细分
查看>>
mysql优化
查看>>
vs2012中怎样设为起始页,怎样取消
查看>>
CSS3中的box-shadow
查看>>
Collections
查看>>
php面试题之二——Javascript(基础部分)
查看>>
Java常用函数式接口--Supplier接口使用案例
查看>>
【常识】常见外国计量单位
查看>>
MySQL索引
查看>>
新版本读取老版本文件崩溃BUG
查看>>
高可用Hadoop平台-应用JAR部署
查看>>
【随感】不要以为自己不足轻重而放任自己做一些事或一些话。你的不在意,才会影响到别人也不在意你。...
查看>>
集美大学网络15软工个人作业4分数统计
查看>>
奇怪吸引子---四涡卷超混沌吸引子
查看>>
微信第三方登陆
查看>>
Android中的WebView进行直接加载网页(要注意解决权限问题)
查看>>
嵌套事务及分类1
查看>>