正则表达式

两类:Pattern模式类和Matcher匹配类
               Pattern主要是用来编译模型和生成匹配器matcher;
正则表达式基本方法
               //定义一个pattern,该pattern就是个f空两个k的模式
          Pattern p =Pattern .compile("f(.+?)(.+?)(.+?)k" );
           //按照p的模式匹配字符串
          Matcher m = p .matcher ("qqfucogffAkfkkkkkf15fkjjfqfi") ;
           while(m .find ()){
                    //无参group表示返回匹配到的子串
                   String s1 =m .group ();
                    //表示第几个括号的值,有几括号就有几个组~
                   String s2 =m .group (3) ;
                    //end表示找到的该子串的结尾的之后索引值
                   System .out.println( s1+ ">>>"+s2 +"||" +m .end ());
/*                fucogffAk>>>ogffA||11
                    fkkkk>>>k||16
                   f15fk>>>f||22
*/
 
匹配日期,电话号码,身份证格式,邮箱网站等等
           //20世纪20年代
          Pattern p2 =Pattern .compile("(19)(2[0-9])" );
          Matcher m2 =p2 .matcher ("192152519204201911924-5") ;
           while(m2 .find ()){
                   System .out.println( m2. group());
           }
/*      1921
          1920
          1924*/
筛选日期
          Pattern p4 = Pattern .compile ("(20)\\d\\d([- /.])(0[1-9]|1[012])\\2(0[1-9]|[12][0-9]|3[01])") ;
          Matcher m4 = p4 .matcher ( "2010-01-01 2007/08/13 1900.01.01 2009 01 01 1900-01.01 2000 02 31 1900 02 31") ;
           while ( m4. find ()) {
                   System . out. println( m4. group ());
           }
/*      2010-01-01
          2007/08/13
          2009 01 01
          2000 02 31*/

我国合法电话号码
          Pattern p3 =Pattern .compile("(\\d{3}-\\d{8}|\\d{4}-\\d{7})" );
          Matcher m3 =p3 .matcher ("021-55454445,41sbhfbh0755-6854555");
           while(m3 .find ()){
                   System .out.println( m3. group());
           }
/*      021-55454445
          0755-6854555*/
将字符串中符合正则表达式的字串全部替换掉
          String string ="qqfucogffAkfkkkkkf15fkjjfqfi" ;
          String str =string .replaceAll ("f(.+?)(.+?)(.+?)k", "hello") ;
          System .out.println( string);         
          System .out.println( str);
/*      qqfucogffAkfkkkkkf15fkjjfqfi
           qqhellohellokhellojjfqfi*/
正确书写正则表达式
预定义字符类
. 任何字符
\\d 数字:[0-9]
\\D 非数字: [^0-9]
\\s 空白字符:[ \t\n\x0B\f\r]
\\S 非空白字符:[^\s]
\\w 单词字符:[a-zA-Z_0-9]
\\W 非单词字符:[^\w]
字符
\0n 带有八进制值 0 的字符 n (0 <= n <= 7)
\0nn 带有八进制值 0 的字符 nn (0 <= n <= 7)
\0mnn 带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)
\xhh 带有十六进制值 0x 的字符 hh
\uhhhh 带有十六进制值 0x 的字符 hhhh
\t 制表符 ('\u0009')
\n 新行(换行)符 ('\u000A')
\r 回车符 ('\u000D')
\f 换页符 ('\u000C')
\a 报警 (bell) 符 ('\u0007')
\e 转义符 ('\u001B')
\cx 对应于 x 的控制符

转载于:https://www.cnblogs.com/shuawang/p/3734778.html

黑马程序员——Java正则表达式相关推荐

  1. 黑马程序员Java教程学习笔记(五)

    学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(五) 日期时间:Date.Sim ...

  2. 黑马程序员Java零基础视频教程_下部(P52-P134)

    黑马程序员Java零基础视频教程_下部(P52-P134) 1. 异常 1.1 异常体系介绍 1.2 编译时异常和运行时异常 1.3 异常在代码中的两个作用 1.4 JVM虚拟机默认处理异常的方式 1 ...

  3. 黑马 程序员——Java基础---流程控制

    黑马程序员--Java基础---流程控制 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 一.概述 Java提供了两种基本的流程控制结构:分支结构 ...

  4. 黑马 程序员——Java基础---IO(下)

    黑马程序员--Java基础---IO(下) ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 一.概述 Java除了基本的字节流.字符流之外,还提供 ...

  5. 2023年黑马程序员Java学习路线图

    2023年Java学科免费学习资源放送40+套课程,超过600小时的内容! 在过去的一年里,为了帮助更多人线上充电,学会更多技能,黑马程序员举办了 150+ 场免费直播公开课,新增精品视频教程 80+ ...

  6. 黑马程序员 JAVA WEB 第三节 MYSQL 约束

    这是阿锃总结的第三节黑马程序员JAVA WEB视频的MYSQL约束部分的笔记.希望可以帮助跟我一样正在学习Java web的同学们.我们一起进步.   b_d 若果有同学也想学习黑马程序员Java w ...

  7. 黑马程序员Java教程学习笔记(三)

    学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(三) 面向对象:设计对象.注意事 ...

  8. 黑马程序员Java零基础视频教程_下部(P135-P200)

    黑马程序员Java零基础视频教程_下部(P135-P200) 1 多线程 1.1 什么是多线程? 1.2 多线程的并发与并行 1.3 多线程的实现方式 1.3.1 继承Thread类的方式进行实现 1 ...

  9. 黑马程序员Java零基础视频教程_上部(P1-P80)

    黑马程序员Java零基础视频教程_上部(P1-P80) 1. Java入门 1.1 Java学习介绍 1.2 Java人机交互 1.2.1 常用CMD命令 2. Java基础学习 2.1 Java入门 ...

最新文章

  1. 零售连锁管理软件_连锁超市用哪个收银软件好?
  2. 加入域时遇到“找不到网络路径”错误解决办法汇总
  3. log4j 禁止类输出日志_SpringBoot统一日志处理原理
  4. 计算机上的键有什么功能吗,电脑功能键都有什么用,电脑上功能键的用法_系统圣地...
  5. mysql log all sql_记录一次mysqlbinlog恢复过程
  6. Exchange修改单封邮件大小命令
  7. 简单又帅气的折纸机器人教程_几张纸做出帅气纸飞机,做法简单飞行速度超快,手工折纸飞机...
  8. win11怎么快速返回桌面 windows11快捷键返回桌面的设置方法
  9. 烽火HG220G-U E00L2.03M2000光猫改桥接教程
  10. 图观小课堂知识点——场景编辑器
  11. TCP粘包原因及解决办法
  12. Leftist Heaps 习题解
  13. 异数OS谈发展国产操作系统的问题
  14. elastix2.5vtigercrm5.2.1来电弹屏和点击呼叫的配置
  15. 高中数学竞赛和信息学竞赛_将数学竞赛变成编码竞赛
  16. 理解Eureka的自我保护模式
  17. [附源码]JAVA+ssm计算机毕业设计城市公交系统(程序+Lw)
  18. 小彩蛋:springboot banner 在线生成
  19. xshell7双击没有反应的解决办法
  20. “不减持”过时了 这些票的股东都在增持

热门文章

  1. 利用js对页面数据进行排序
  2. 最大公共子串提取“模式”
  3. 12 Useful Tips for Machine Learning (转载)
  4. 大话网站---从Hello World到高并发网站
  5. KVM的客户机可以使用的存储
  6. DeviceToken 获取失败,原因:Error Domain=NSCocoaErrorDomain Code=3000 未找到应用程序的“aps-environment”的授权字符串......
  7. 信息化的“五观”与“N为”
  8. Content-Disposition
  9. java播放声音和图片的代码_java怎么将出片处理成老照片?怎么播放声音?
  10. Win64 驱动内核编程-26.强制结束进程