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. 通过ajax获取一个多位数,当容器显示在屏幕可视区时,让数字以滚动的形式显示

      { "data": "268" } json数据 <!DOCTYPE html> <html> <head lang=&quo ...

  2. Django 数据模型的字段列表整理

    一个模型最重要也是唯一必需的部分,是它定义的数据库字段. 字段名称限制: 1.一个字段名不能是一个Python保留字,因为那样会导致一个Python语法错误. 2.一个字段名不能包含连续的一个以上的下 ...

  3. thinkphp5.0查询到的数据表中的路径是反斜杠导致无法正常显示图片怎么办?

    添加到数据表中图片的路径有时会是反斜杠,这就导致了在url后面写路径的时候会识别不出来(不过src后面写路径就可以识别),所以就需要把路径中的反斜杠替换成正斜杠,代码如下: $datu = Db::q ...

  4. Sonar安装和常见问题解决

    Sonar是一款代码质量分析工具,有助于帮助代码质量提高. Sonar的官网地址为:https://www.sonarqube.org/downloads/ 点击 Show All Versions ...

  5. mysql的入门基本使用(适合新手学习)

    登陆Mysql数据库mysql -u root -p 展示(查询)所有数据库show databases;进入数据库use dataname;创建数据库create database dataname ...

  6. 一个有意思的CSS样式库--BUTTONS

    我最近发现了一个有意思的CSS样式库,和Bootstrap相似,但是它是专门的一个高度可定制的,免费的并且开源的按钮CSS样式库,这里附上它的网址:http://www.bootcss.com/p/b ...

  7. 轻量ORM-SqlRepoEx (九)与Dapper共舞

    Dapper就另一个轻量ORM,Dapper及其扩展解决了数据访问端的大部门问题,提供了如数据事务管理.缓存等支持.SqlRepoEx的重点解决了Lambda转换成SQL语句,使SQL使用强类型编写, ...

  8. iOS:绘图(18-01-25更)

    目录 1.UIBezierPath(贝塞尔曲线) 1).在重写 drawRect: 方法里使用 2).在普通方法里使用,需要画布. 3). 切圆角.指定位置圆角.任意形状. 4).彩色的动画加载圆圈. ...

  9. Swiper2和Swiper3区别详解与兼容IE8/IE9

    最近项目一些网站项目想到用Swiper3来制作响应式,但是发现IE9都不兼容, 而swiper2版本又少一个breakpoints参数 做响应式脚本非常不方便,于是想到新版的浏览器用3  ,iE9和以 ...

  10. 通过 openURL 方法跳转至设置 - iOS

    iOS 10 以下系统版本可以通过 openURL 的方式跳转至指定的设置界面,code 如下: NSURL *url = [NSURL URLWithString:@"prefs:root ...