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. swagger使用二:swagger配置多个项目注释

    在项目中采用swagger测试接口,提供接口给其他人员都非常的方便. 在swagger默认配置中,默认只显示接口访问层中的注释,可是很多的参数说明都已经在实体层中了啊?(如下图)不可能再把实体层中的模 ...

  2. Java关于日期时间的工具类

    import java.sql.Timestamp; import java.text.ParseException; import java.text.ParsePosition; import j ...

  3. Spring Framework5.0 学习(1)—— 用Gradle构建一个Java Project

    1.0  安装Gradle,参考之前文章<Gradle入门实战(Windows版)> 2.0  使用gradle 快速生成一个Java project gradle init --type ...

  4. 如何用jstl的select标签做二级联动下拉列表框??

    下拉列表框的多级联动早就会了.但是用jstl的select标签做下拉列表框的做二级联动的时候还是遇到了些问题.主要问题在用Ajax查询到的数据如何拼成下拉选项的时候.其实很简单,但我还是折腾了好久.所 ...

  5. Git 初始化全局user.name 和 user.email

    git config --global user.name "username" git config --global user.email "email"

  6. 【[HNOI2004]L语言】

    \(Trie\)树+\(DP\) 我们只需要做一个存在性dp就好了 对于每一个字符串,我们设\(f[i]\)表示从\(1\)到\(i\)位是否能被完全匹配 首先\(f[0]=1\),之后我们对于每一个 ...

  7. boost::timer库使用

    boost::timer boost库定时器使用,需要在编译时加相关链接库 -lboost_timer -lboost_system boost::timer::cpu_timer 和boost::t ...

  8. PHP------面向对象的特性

    面向对象的特性 一.面向对象有三大特性: 封装.继承.多态.(非常重要,第一要记住!!!!!!!!!!) 二.封装 封装就是用来做类的,把一个类封装起来.做类不能随便的做.我们做类不能随便去写一个类, ...

  9. ConcurrentHashMap 中putIfAbsent 和put的区别

    putIfAbsent 源代码 public V putIfAbsent(K key, V value) { Segment<K,V> s; if (value == null) thro ...

  10. jsp内置对象pageContext如何在Servlet中获取值

    pageContext javax.servlet.jsp.PageContext 的实例,该对象代表该JSP 页面上下文,使用该对象可以访问页面中的共享数据.常用的方法有getServletCont ...