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. Jenkins传参修改jmeter的报告名称和详细报告地址

    目前已经可以发送邮件了,我已经配置了Jenkins,但是有几个显示问题,待处理1.报告名称地址, 2详细报告地址没有做跳转 更改后为: 修改url 1.打开样式的jmeter-results-deta ...

  2. jQuery 实现改变图片指定区域的颜色

    javascript本身无法改变图片的颜色,不过我们可以通过一些技巧来实现一样的效果. 1.首先我们要知道图片哪些区域需要改变颜色,这里我们可以用执点地图的方法来弄 例1: <img src=& ...

  3. 从数据库中取出的数据,字段名为gb2312的 数据转码为utf8

    $pj = Pj::find()->where($map)->asArray()->one(); if(!empty($pj)) { foreach ($pj as $k=>$ ...

  4. ServletRequest的四个主要方法

    package com.yunqing.servlet; import javax.servlet.*; import java.io.IOException; import java.util.Ar ...

  5. CodeForces - 616C(很有意思的bfs,set,map的使用)

    传送门: http://codeforces.com/problemset/problem/616/C C. The Labyrinth time limit per test 1 second me ...

  6. ovs的卸载

    使用apt-get安装的openvswitch,然后卸载好麻烦撒,而且还没有相关资料说一下怎么删除的,特此记录一下,希望有个参考 首先把服务器上使用ovs新建的虚拟网桥全部删除掉 然后把原有的内核删除 ...

  7. SQLServer如何批量替换某一列中的某个字符串

    我们在开发系统的时候经常会碰到类似如下这样的情况:比如我有一张数据表 假如我现在要把红圈中这列的的http://www.mylanqiu.com/ 这个字符串批量替换成mylanqiu 这个字符串,这 ...

  8. 阿里云修改主机名(以centOS为例)

    需要更改配置文件生效,修/etc/sysconfig/network里的 HOSTNAME=主机名(可自定义),重启生效. 如何修改? 1.[root@aliyunbaike ~]# cd /etc/ ...

  9. jQuery 遍历 - children() 方法 获取指定id下子元素的值

    <a id="Aobj_2_2" class="" specid="2" specvid="2" href=&qu ...

  10. Colored Boots题解

    题目来自Codeforce 1141Dhttp://codeforces.com/problemset/problem/1141/D 因为是全英文题面,就先简单的阐述一下题面. 首先输入一个数n,然后 ...