1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3. /**
  4. * 正则表达式:字符串的处理利器
  5. * @author kenan
  6. *
  7. */
  8. public class RegularExpressions {
  9. public static void main(String[] args) {
  10. // 在正则表达式中 . 代表一个字符
  11. //      System.out.println("abc".matches("..."));
  12. // \d 代表一个数字:使用表达式进行匹配替换
  13. //      System.out.println("ab12356c".replaceAll("\\d", "-"));
  14. //这个是我们平时的用法
  15. //      System.out.println("ab12346c".replaceAll("123", "---"));
  16. //编译一个正则表达式
  17. //      Pattern p = Pattern.compile("[a-z]{3}");
  18. // 匹配一个字符串  , 返回一个 Matcher 对象
  19. //      Matcher m = p.matcher("abc");
  20. //      System.out.println(m.matches());
  21. // . : 一个字符
  22. //* : 0或多个字符
  23. //+: 1或者多个
  24. //?:0 或者 1个
  25. //      System.out.println("a".matches("."));
  26. //      System.out.println("aa".matches("aa"));
  27. //      System.out.println("aaaa".matches("a*"));
  28. //      System.out.println("".matches("a*"));
  29. //      System.out.println("aaa".matches("a?"));
  30. //      System.out.println("".matches("a?"));
  31. //      System.out.println("a".matches("a?"));
  32. //      System.out.println("123456".matches("\\d{3,100}"));
  33. //      System.out.println("12".matches("\\d{3,100}"));
  34. //      System.out.println("192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
  35. //      System.out.println("192.168.0.2".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
  36. //      System.out.println("192".matches("[0-2][0-9][0-9]"));
  37. //      System.out.println("192".matches("[0-9]"));
  38. //范围匹配
  39. //      System.out.println("a".matches("[abc]"));
  40. //      System.out.println("a".matches("[^abc]"));
  41. //      System.out.println("A".matches("[a-zA-Z1-9]"));
  42. //      System.out.println("3".matches("[a-zA-Z1-9]"));
  43. //      System.out.println("A".matches("[a-z]|[A-Z]"));
  44. //      System.out.println("R".matches("[A-Z&&[RFG]]"));
  45. //  认识  \s \w  \d \
  46. // \d 一个数字 [0-9]
  47. // \D 上面取反
  48. // \s 一个空字符 [ \t\n\r\f\x0B]
  49. // \S 上面取反
  50. // \w 一个字符[a-zA-Z_0-9]
  51. // \W 出了上面的字符以为的其他字符
  52. // \\  代表 一个 \
  53. //      System.out.println(" \n\r\t".matches("\\s{1,4}"));
  54. //      System.out.println(" ".matches("\\S"));
  55. //      System.out.println("a_8".matches("\\w{1,3}"));
  56. //      System.out.println("abc888&^%".matches("[a-z]{1,3}\\d+[&^#%]+"));
  57. //      System.out.println("\\".matches("\\\\"));
  58. // Posix Style
  59. //      System.out.println("a".matches("\\p{Lower}"));
  60. //边界处理
  61. // ^ 在[ ] 里代表取反 在外面代表字符开头
  62. // $ 代表以什么结尾
  63. // \b代表 单词结束
  64. //      System.out.println("hello sir".matches("^h.*"));
  65. //      System.out.println("hello sir".matches(".*ir$"));
  66. //      System.out.println("hello sirr".matches(".*ir$"));
  67. //      System.out.println("hello sir".matches("^h[a-z]{1,3}o\\b.*"));
  68. //      System.out.println("hellosir".matches("^h[a-z]{1,3}o\\b.*"));
  69. //      System.out.println("hello         sir".matches("^h[a-z]{1,3}o\\b.*"));
  70. //      System.out.println("hello&         sir".matches("^h[a-z]{1,3}o\\b.*"));
  71. //      System.out.println("hello.         sir".matches("^h[a-z]{1,3}o\\b.*"));
  72. //找出空白行
  73. //      System.out.println(" \n".matches("^[\\s&&[^\\n]]*\\n$"));
  74. //      System.out.println("\n".matches("^[\\s&&[^\\n]]*\\n$"));
  75. // email
  76. //      System.out.println("soukenan@qq.com".matches("[\\w.-]+@[\\w.-]+\\.[\\w]+"));
  77. // matches from lookingat
  78. //      Pattern p = Pattern.compile("\\d{3,5}");
  79. //      String s = "123-45674-234-00";
  80. //      Matcher m = p.matcher(s);
  81. //      System.out.println(m.matches()); //false  //从前往后匹配
  82. //      m.reset(); // 把光标重置
  83. //      System.out.println(m.find());//true  //从当前的标志开始查找
  84. //      System.out.println(m.start()+":"+m.end());
  85. //      System.out.println(m.find()); //true 查找匹配的字串
  86. //      System.out.println(m.start()+":"+m.end());
  87. //      System.out.println(m.find()); //true
  88. //      System.out.println(m.start()+":"+m.end());
  89. //      System.out.println(m.find());//false
  90. //
  91. //      System.out.println(m.lookingAt()); //true  //从头开始看看 是否匹配
  92. //      System.out.println(m.lookingAt()); //true
  93. //      System.out.println(m.lookingAt()); //true
  94. //      System.out.println(m.lookingAt()); //true
  95. //replacement 字符串的替换
  96. //      Pattern p = null;
  97. //      p = Pattern.compile("java");
  98. //      p = Pattern.compile("java", Pattern.CASE_INSENSITIVE); //忽略大小写
  99. //      Matcher m = p.matcher("java Java JaVa javA ,i love JAVA!");
  100. //      while(m.find()){
  101. //          System.out.println(m.group());
  102. //      }
  103. //      System.out.println(m.replaceAll("JAVA")); //把找到的匹配字符串转换成JAVA
  104. //      StringBuffer buf = new StringBuffer();
  105. //      int i =0;
  106. //      while(m.find()){
  107. //          i++;
  108. //          if(i%2==0){
  109. //              m.appendReplacement(buf, "java");  //偶数 转换成 java
  110. //          }else{
  111. //              m.appendReplacement(buf, "JAVA"); //奇数转换成 JAVA
  112. //          }
  113. //      }
  114. //      m.appendTail(buf);//把尾部字符串添加上去
  115. //      System.out.println(buf);
  116. //group 分组
  117. //()  这个是用来分组的
  118. Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})");
  119. String s = "123aa-3456bb-234cc-00";
  120. Matcher m = p.matcher(s);
  121. while(m.find()){
  122. System.out.println(m.group(1)+":"+m.group(2));
  123. }
  124. }
  125. }

转载于:https://blog.51cto.com/soukenan/1131428

用例子来学习正则表达式相关推荐

  1. java正则表达式课程_通过此免费课程学习正则表达式

    java正则表达式课程 by Beau Carnes 通过博卡恩斯 通过此免费课程学习正则表达式 (Learn Regular Expressions with this free course) & ...

  2. 正则表达式学习日记_《学习正则表达式》笔记_Mr_Ouyang

    正则表达式学习日记_<学习正则表达式>笔记_Mr_Ouyang 所属分类: 正则表达式学习日记  书名:     学习正则表达式 作者:     Michael Fitzgerald 译者 ...

  3. 用Python学习正则表达式

    转自:http://daydayup.is-programmer.com/posts/1200.html 用Python学习正则表达式 正则表达式 一般字符 []表示的字符类 {}表示重复 ^和$表示 ...

  4. 通过grep学习正则表达式

    在Linux的学习当中,正则表达式是非常重要的部分,现在我想通过grep命令来解析和学习正则表达式,同时也能将grep的相关功能展示清楚. 从一个例子开始 cat test.txt grep 'a l ...

  5. 【推荐】使用Ultrapico Expresso学习正则表达式

    推荐理由 Ultrapico Expresso是我工作中经常使用的一个非常强大的正则表达式构建.测试以及代码生成工具.它能够对你构建的正则表达式进行解析.验证,并输出解析结果,提供性能测试工具,支持C ...

  6. (正则表达式学习)正则表达式语法

    以前一直想好好的系统的学习正则表达式,都没有按照自己的意愿去做.这次一定要很抓一下正则的学习.先把MSDN的正则表达式语法帖出来,方便自己查找.呵呵. 字符 说明 \ 将下一字符标记为特殊字符.文本. ...

  7. 通过rxjs的一个例子, 来学习SwitchMap的使用方法

    switchMap相关文章 rxjs里switchMap operators的用法 通过rxjs的一个例子, 来学习SwitchMap的使用方法 rxjs switchMap的实现原理 rxjs的ma ...

  8. 一个简单的例子,学习自定义注解和AOP

    转载自   一个简单的例子,学习自定义注解和AOP 记得今年年初刚开始面试的时候,被问的最多的就是你知道Spring的两大核心嘛?那你说说什么是AOP,什么是IOC?我相信你可能也被问了很多次了. 1 ...

  9. 蜗牛学习正则表达式 教程 工具一网打尽

    蜗牛学习正则表达式系列教程,不可多得的资料...... 转载于:https://www.cnblogs.com/qnfng/archive/2009/06/19/1506391.html

  10. 手机号正则_一起刷题学习正则表达式

    在我最开始学习正则表达式的时候看到一堆符号简直头晕,所以很长一段时间我都是百度一下某某正则怎么写,比如:匹配所有手机号码的正则,但是有时候工作中碰到的一些问题网上搜不到,这就尴尬了,后面还是逼着自己花 ...

最新文章

  1. mysql 5.7配置多线程复制,MySQL5.7复制功能实战,基于事务的复制,多源复制和多线程复制配置...
  2. 可以接受失败,但不选择放弃
  3. ML之xgboost:绘制xgboost的二叉树graphviz的两种方法代码实现
  4. Python必备收藏!Pycharm 常用快捷键方式!让鼠标离手操作
  5. 工业以太网交换机的概念及其主要功能介绍
  6. 计算机培训开场语,辅导班家长会主持词开场白
  7. 云栖独栋别墅_云栖没有玫瑰
  8. PreparedStatement对象
  9. Windows Internet Explorer 7 正式发布
  10. bzoj 4556 字符串
  11. ubuntu下安装ros出现“无法下载-package.ros.org中某个包-校验和不符”的解决方法...
  12. 基于mfc 组态软件_组态软件有哪些?InTouch、WinCC、组态王?
  13. vue 中 使用 clipboard 复制内容第一次点击两次才能成功问题修改
  14. WebService之CXF框架
  15. 2021,自动驾驶的“五代十国”
  16. 如何成为一个优秀的测试工程师
  17. Oracle ASM理论及实践介绍
  18. Podman使用详解
  19. linux 32位浏览器下载,Chrome 浏览器32位、64位下载地址大全
  20. 正大国际期货:国际期货中的八条看盘技巧!

热门文章

  1. 原型模式(Prototype)解析例子
  2. overcommit_memory 内核参数
  3. Android UI学习之---Button
  4. FRR BGP协议分析4 -- 路由更新(1)
  5. ffmpeg + rtp介绍
  6. FFmpeg 基本用法
  7. python 图片对比文件夹_Python挑选文件夹里宽大于300图片的方法
  8. 水下清淤机器人_国产第五代箱涵清淤机器人真机亮相上海城市管网展恒通环境展位...
  9. 网络编程----观察进程的启动与停止
  10. 201约花鸟画 考c语言试题,全国计算机二级C语言上机100题..doc