1. package test;
  2. /**
  3. * 在String的matches()方法,split()方法中使用正则表达式.
  4. * @author fhd001
  5. */
  6. public class RegexTest {
  7. public static void main(String[] args) {
  8. /*
  9. * 普通字符
  10. */
  11. String str1 = "abc45abc345";
  12. String[]arr1 = str1.split("abc");
  13. for (String string : arr1) {
  14. System.out.print(string+"-->");
  15. }
  16. System.out.println();
  17. /*
  18. * 简单的转义字符
  19. * 在java中转义字符时一定要用双反斜线,两个斜线转义成一个斜线,
  20. * 在用这个斜线字符转义那些特殊字符.
  21. */
  22. String str2 = "^$()[]{}.?+*|";
  23. boolean flag = str2.matches("//^//$//(//)//[//]//{//}//.//?//+//*//|");
  24. System.out.println(flag);
  25. /*
  26. * 转义字符 /Q.../E.
  27. */
  28. String str3 = "^$()[]{}.?+*|99999";
  29. boolean flag2 = str3.matches("//Q^$()[]{}.?+*|//E//d{5}");
  30. System.out.println(flag2);
  31. /*
  32. * 字符集合
  33. */
  34. String str4 = "dfddri334";
  35. boolean flag4 = str4.matches(".+");
  36. System.out.println(flag4);
  37. String str5 = "#$%^*())%";
  38. boolean flag5 = str5.matches("//W{9}");
  39. System.out.println(flag5);
  40. String str6 = "4gffmdkekrhhr";
  41. boolean flag6 = str6.matches("//w+");
  42. System.out.println(flag6);
  43. String str7 = "fjfdke    eett ";
  44. boolean flag7 = str7.matches("//w+//s+//w{4}//s?");
  45. System.out.println(flag7);
  46. String str8 = "   erefff    ";
  47. boolean flag8 = str8.matches("//s+//S+//s+");
  48. System.out.println(flag8);
  49. String str9 = "456776888";
  50. boolean flag9 = str9.matches("//d+");
  51. System.out.println(flag9);
  52. String str10 = "rtydfgrgwvr  ";
  53. boolean flag10 = str10.matches("//D+");
  54. System.out.println(flag10);
  55. /*
  56. * 自定义字符集合 [ ]
  57. */
  58. String str11 = "fdfeetg  34566";
  59. boolean flag11 = str11.matches("[fdetg]+//s+[3-6]+");
  60. System.out.println(flag11);
  61. String str12 = "rtyuie   5768";
  62. boolean flag12 = str12.matches("[^abcdf]+//s+[^1234]+");
  63. System.out.println(flag12);
  64. /*
  65. * 匹配次数限定符
  66. */
  67. //贪婪模式
  68. String str13 = "ytreggcv454444444333";
  69. boolean flag13 = str13.matches("//w{20}");
  70. System.out.println(flag13);
  71. boolean flag14 = str13.matches("//w{10,21}");
  72. System.out.println(flag14);
  73. boolean flag15 = str13.matches("//w{18,}");
  74. System.out.println(flag15);
  75. String str14 = "4";
  76. boolean flag16 = str14.matches("//d?");
  77. System.out.println(flag16);
  78. String str15 = "ddcvgt";
  79. boolean flag17 = str15.matches("//D+//d?");
  80. System.out.println(flag17);
  81. String str16 = "e33tf44t44t";
  82. boolean flag18 = str16.matches("//w+//W*");
  83. System.out.println(flag18);
  84. //勉强模式(只举一例)
  85. String str17 = "34567ghjkkld";
  86. boolean flag19 = str17.matches("//d{2,7}?//w{8,11}");
  87. System.out.println(flag19);
  88. //占有模式(只举一例)
  89. String str18 = "22222ddddd";
  90. boolean flag20 = str18.matches("//d{2,5}+//w{6}");
  91. System.out.println(flag20);
  92. /*
  93. * 字符边界
  94. */
  95. String str19 = "a444545rot44tm";
  96. boolean flag21 = str19.matches("^a//w+m$");
  97. System.out.println(flag21);
  98. /*
  99. * 选择表达式 xxx | xxx
  100. */
  101. String str20 = "abc123abc";
  102. boolean flag22 = str20.matches("(abc|123){3}");
  103. System.out.println(flag22);
  104. /*
  105. * 分组 ( ).
  106. * 以上修饰符都是针对一个字符进行修饰.如果要对一组字符进行
  107. * 修饰就要用到()
  108. */
  109. String str21 = "123qwe123qwe";
  110. boolean flag23 = str21.matches("(123qwe){2}");
  111. System.out.println(flag23);
  112. /*
  113. * []中的交集与并集
  114. */
  115. String str22 = "abcdefgh1234567";
  116. boolean flag24 = str22.matches("[a-z1-9]+");        //并集
  117. System.out.println(flag24);
  118. boolean flag25 = str22.matches("[a-z1-9&&[a-h1-7]]+"); //交集
  119. System.out.println(flag25);
  120. }
  121. }
  1. -->45-->345-->
  2. true
  3. true
  4. true
  5. true
  6. true
  7. true
  8. true
  9. true
  10. true
  11. true
  12. true
  13. true
  14. true
  15. true
  16. true
  17. true
  18. true
  19. true
  20. false
  21. true
  22. true
  23. true
  24. true
  25. true

java String matches 正则表达的更多相关文章

  1. Java String 中的一些函数与正则的结合使用

    首先正则表达式在处理字符串问题时,真的非常强大. 正则可以帮助我们处理字符串的: 匹配, 选择, 编辑, 验证等问题. 正则中"\\"表示插入一个"\" 这里仅 ...

  2. Java正则表达中Greedy Reluctant Possessive 的区别

    Java正则表达中Greedy Reluctant Possessive 的区别 分类: java2015-01-16 00:28 1280人阅读 评论(9) 收藏 举报 正则表达式Java   目录 ...

  3. java中的正则操作总结

    http://www.cnblogs.com/nerxious/archive/2013/01/03/2842910.html 正则表达式在处理字符串的效率上是相当高的 关于正则表达式的使用,更多的是 ...

  4. HttpGet协议与正则表达

    使用HttpGet协议与正则表达实现桌面版的糗事百科   写在前面 最近在重温asp.net,找了一本相关的书籍.本书在第一章就讲了,在不使用浏览器的情况下生成一个web请求,获取服务器返回的内容.于 ...

  5. shell正则表达

    shell正则表达 .*和.?的比较: 比如说匹配输入串A: 101000000000100 使用 1.*1 将会匹配到1010000000001,匹配方法:先匹配至输入串A的最后, 然后向前匹配,直 ...

  6. 使用HttpGet协议与正则表达实现桌面版的糗事百科

    写在前面 最近在重温asp.net,找了一本相关的书籍.本书在第一章就讲了,在不使用浏览器的情况下生成一个web请求,获取服务器返回的内容.于是在网上搜索关于Http请求相关的资料,发现了很多资料都是 ...

  7. Java String.replaceAll() 与后向引用(backreference)

    问题 昨天看到一篇博文,文中谈到一道 Java 面试题: 给定一字符串,若该字符串中间包含 "*",则删除该 "*":若该字符串首字符或尾字符为 "* ...

  8. php 正则表达示中的原子

    原子 原子是正则表达示里面的最小单位,原子说白了就是需要匹配的内容.一个成立的正则表达示当中必须最少要有一个原子.大理石平台精度等级 所有可见不可见的字符就是原子 说明:我们见到的空格.回车.换行.0 ...

  9. Matches正则使用提取内容

    用VS新建WinForm程序,窗体上是三个文本框和一个按钮.可以自己构造正则表达式,自己修改匹配内容 正则表达是要提取的部分为hewenqitext 代码如下: using System; using ...

随机推荐

  1. commons-lang(一)

    写在开头的话: 在工作中,经常会要用到一些公用的组件包,比如日期,String这些等,换过几次工作的朋友对这事肯定比较深刻,如果自己有积累的还好,对于没有积累的同学,尤其是规模较小的公司,怕是又要重头 ...

  2. UVa 10820 - Send a Table(欧拉函数)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  3. 你真的了解现在的PHP吗?

    前段时间,公司的项目从PHP5.3升级到PHP7,现在项目里开始使用PHP7的一些新语法和特性.反观PHP的5.4.5.5.5.6版本,有点认知缺失的感觉.所以,决定看<Modern PHP&g ...

  4. android:windowSoftInputMode属性详解 软键盘

    android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性. 这个属性能影响两件事情: [一] ...

  5. max-height实现任意高度元素的展开收缩动画

    http://dobinspark.com.cn/ 前言: 在说到实现元素的展开收缩,通常的想法是通过控制display的元素属性和none之间的切换,虽然说功能可以实现,但是这种展开是没有任何动画的 ...

  6. 一点一点看JDK源码(五)java.util.ArrayList 后篇之SubList

    一点一点看JDK源码(五)java.util.ArrayList 后篇之SubList liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) S ...

  7. ASP.Net Mvc 5 学习记录2015-9-9

    我之前一直都是学习和开发都采用ASP.Net WebForm,对MVC的一直都是一知半解,最初以为ASP.Net WebForm的N层架构就是MVC.其实N层架构设计思想是"高内聚,低耦合& ...

  8. vue+element-ui中的图片获取与上传

    vue+element-ui中的图片获取与上传 工作上接触了一下图片的处理,图片的格式是文件流, 记录如下. 请求图片 请求图片的时候,带上{ responseType: 'blob' }, 否则图片 ...

  9. Vue--- 一点车项目 6个小时实际看了10天(完结)

    一个项目 环境安装   使用了 cli 脚手架  Koa2  workpackage  其他小的不计 前端Vue组件搭建 数据的简单测试交互 数据库的设计 创建.连接接数据库 前台[表单/分类]   ...

  10. 什么是 better-scroll(转自知乎网 : 黄轶)

    什么是 better-scroll better-scroll 是一个移动端滚动的解决方案,它是基于 iscroll 的重写,它和 iscroll 的主要区别在这里.better-scroll 也很强 ...