“黑马程序员”正则表达式的学习日志

Redis基础项目:黑马程序员 Redis基础项目:黑马程序员 阅读详情

 ----------------- android培训、java培训、期待与您交流! ----------------------


在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字的字符串(像010-12345678或0376-7654321)。

以下代码是个人在学习正则表达式的时候整理出来的,方便于查阅

import java.awt.print.Printable;

import java.io.File;
      import java.util.regex.Matcher;
      import java.util.regex.Pattern;
 

import javax.crypto.Mac;


public class test {
public static void main(String[] args) {
/*
* System.out.println("aaa".matches("..."));
* print("a34232df".replaceAll("\\d", "-")); Pattern
* pattern=Pattern.compile("[a-z]{3}"); Matcher
* matcher=pattern.matcher("dsf"); print(matcher.matches());
* print("dfs".matches("[a-z]{3}"));
*/
/*
* System.out.println("".matches("a?"));
* System.out.println("".matches("a+"));
* System.out.println("".matches("a*") );
* System.out.println(" \n".matches("^[\\s&&[^\\n]]\\n")); Pattern
* pattern=Pattern.compile("^\\d+@q{2}\\.com$"); Matcher
* matcher=pattern.matcher("677000@qq.com"); print(matcher.matches());
*/
// System.out.println("\\".matches("\\\\"));
// System.out.println(" ".matches("."));
/*
* Pattern pattern=Pattern.compile("\\d{3,5}"); Matcher
* matcher=pattern.matcher("3322d"); print (matcher.matches());
*/
// matcher.reset();
/*
* print(matcher.find()); print(matcher.find()); print(matcher.find());
* print(matcher.find());
*/
// Pattern pattern = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
// Matcher matcher = pattern
// .matcher("java JAVa jaVa,i love jAva dsfd java jdsf");
// print(matcher.replaceAll("java"));
/*
* while(matcher.find()){ System.out.println(matcher.group()); }
*/
/*StringBuffer sb = new StringBuffer();
int i=0;
while (matcher.find()) {
            i++;
            if(i%2==0){
            matcher.appendReplacement(sb, "java");
            }
            else {
matcher.appendReplacement(sb, "JAVA");
}
            
}
matcher.appendTail(sb);
print(sb.toString());*/
/* Pattern pattern=Pattern.compile("\\d{3,5}");
Matcher matcher=pattern.matcher("4352--sdf5432-fs4343-sdf5454-sfs2232-23");
matcher.matches();
matcher.reset();
matcher.find();
print(matcher.group());
   System.out.println(matcher.start()+"-----"+matcher.end());
   matcher.find();
   System.out.println(matcher.start()+"-----"+matcher.end());
   matcher.find();
   System.out.println(matcher.start()+"-----"+matcher.end());
   matcher.find();
   System.out.println(matcher.start()+"-----"+matcher.end());
   matcher.find();
   System.out.println(matcher.start()+"-----"+matcher.end());*/
//    matcher.find();
//    System.out.println(matcher.start()+"-----"+matcher.end());
//    print(matcher.group());
 Pattern pattern=Pattern.compile("(\\d{3,5})([a-z]{1,4})");
   Matcher matcher=pattern.matcher("1223add-234dfd-3222dfds-12113ddsd");
   while (matcher.find()){
    print(matcher.group(1));
   
   }
/*Pattern pattern=Pattern.compile(".{1,5}[1-9]");
   Matcher matcher=pattern.matcher("d2sf3f1dh5ff2");
   while(matcher.find()){
    System.out.println(matcher.start()+"---"+matcher.end());
   
   }
   System.out.println("java".matches("(?i)JavA"));*/
   System.out.println("12".matches("(.)(.)\\2"));
}


public static void print(Object o) {
System.out.println(o);
}
}

 ---------------------- android培训、java培训、期待与您交流! ----------------------

详细请查看:http://edu.youkuaiyun.com/heima

2020最新版Python学习路线图--Python高级重点知识 Python学习路线图的第二个阶段是Python高级学习,学完后能够掌握的Python技能:1. 熟练使用Linux操作系统;2. 掌握网络编程相关技术, 能够实现网络间数据通信;3. 掌握程序设计开发中多任务实现方式;4. 熟练掌握MySQL操作相关技术, 熟练编写各种数据库操作SQL语句, 并能够进行Python与MySQL之间的数据交互;5. 掌握Python中的re模块的使用, 能够实现对... 阅读详情

相关推荐

黑马程序员Python正则表达式实战课件完整版

为提高书写效率,正则提供了若干预定义字符类,它们是对常用字符集合的缩写:缩写等价形式含义\d[0-9]数字字符\D[^0-9]非数字字符\s空白字符(空格、制表符、换行等)\S非空白字符\w单词字符(字母、数字、下划线)\W非单词字符这些缩写极大提升了正则表达式的可读性和编写速度。例如:可快速验证北美电话号码格式(如然而,不同正则引擎对\w和\s的定义存在细微差别。特别是在 Unicode 支持方面:在 Python 的。

weixin_30923011的博客 775

黑马程序员总结文档汇总

这篇日志,是这些日子以来观看传智播客视频写的一篇汇总文档,蓝色标识的超链接是doc类型的文档,绿色标识的超链接是思维导图类型的文档,同时两种类型的文档中每篇都提供了文档下载链接,详细内容如下:   黑马程序员 01 Java基础教学 - 01 - 认识Java                                黑马程序员 02 Java基础教学 - 02 - 走进Java

kongbeily的专栏 2143

(详细总结)python爬取 163收件箱邮件内容,收件箱列表的几种方法(urllib, requests, selenium)

需求:最近有一个需求,需要将163邮箱收件箱里面的所有邮件的内容全部copy下来,整理到一个word里面,不多也就28页的邮件(不要问我为什么有这需求,不告诉你),自己手动去ctrl+ cv 的话,估计要搞吐。然后就想能不能用python的爬虫来实现,虽然过程比较苦(后期改bug改的要吐了)。但是会后还是将需求实现了。这基本也算是入门了 urllib、requests、selenium这几个py...

man_tou_22 1万+

黑马程序员-JAVA基础学习日志——通篇大总结及学习方法思想

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------   Java基础知识总结          回首是为了更好向前,天空没有翅膀的痕迹,而我已飞过,人总是这样,害怕回首,又时常回首,看看走过的路是直是弯,踩下的脚印是深是浅,回首昨天的风雨,眺望远方的灿烂。几多感慨,几多愁,放下包袱,轻装前行... 写代码: 1,明确需求。我要做什么?

无码骑兵的博客 5909

计算机网络-自顶向下方法 第三章课后习题答案(第七版)

复习题 R1. a) 就叫这个协议为简单传输协议STP(Simple Transport Protocol)。在发送方,STP从发送进程接收不超过1196字节的数据块、目标主机地址和目标端口号。STP向每个块添加一个4字节的头,并将目标进程的端口号放在头中。STP然后将目标主机地址和结果段提供给网络层。网络层将段交付给目的地主机的STP。目的主机基于STP检查段中的端口号,从段中提取数据,并将数据传递给由端口号标识的进程。 b) 在发送方,STP从发送进程接收不超过1192字节的数据块、目标主机地址和目标端

Erekilu的博客 2万+

AI 算力基础设施深度系列(一):从容器到 Kubernetes——算力底座的诞生

1. 容器 = Namespace(视图隔离) + Cgroup(资源限制) + Union FS(镜像分层)└── 不是虚拟机!共享内核,接近零开销2. K8S 三大设计哲学:└── 声明式 API + 控制循环 + 可扩展架构3. K8S 架构:└── 控制面 (API Server / etcd / Scheduler / Controller Manager)

warm3snow的博客 534

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

黑马程序员Java教程学习笔记

末初 · mochu7 2730

零样本缺陷检测新体验:用AnomalyGPT大模型快速搭建智能质检系统(附Win10适配指南)

本文详细介绍了如何利用AnomalyGPT大模型在Windows 10系统上快速搭建零样本工业缺陷检测系统。通过实战指南,涵盖从环境部署、模型准备到工程化落地的全过程,包括将模型封装为API服务、接入工业相机以及开发可视化监控看板,为制造业智能质检提供了一套高效、低门槛的本地部署解决方案。

weixin_29094775的博客 310

黑马程序员——黑马学习日志之十八 正则表达式

------- android培训、java培训、期待与您交流! ----------

s7643的专栏 424

B站李沐讲论文笔记AlexNet

B站李沐讲论文笔记AlexNet

夏知识不进脑子薇的博客 789

RK3566 Android11默认客户Launcher修改

【代码】RK3566 Android11默认客户Launcher修改。

Android系统开发笔记 1723

黑马程序员Java基础学习,涉及精细知识点复习【持续更新】

文章目录01java基础java基础面向对象1.类:2.成员变量:类中方法外的变量,不能赋值3.成员方法:4.java内存分配:5.成员变量有初始值,局部变量没有初始值。6.this关键字:7.封装:8.构造方法:9.标准的JavaBean组成10.JDK帮助文档使用流程:GUI1.java.awt包:2.javax.swing包:3.GUI组件:4.事件监听机制5.“”创建的字符串对象,在字符串常量池存储,如果内容一样的字符串,本质上是同一个对象。6.基本类型包装类7.比较字符串相等02java_进阶一、

IN year 3419

大厂面经:大疆嵌入式面试题及参考答案(4万字长文:持续更新)

目录 Linux 系统调用的过程,中间发生了什么? 表格总结 Linux 中断流程,谈谈你对中断上下文的理解 中断流程 中断上下文理解 Linuxschedule()函数的原理和调用的时机 schedule()函数原理 调用时机 页表实现机制,分页的缺点? 页表机制 分页的缺点 介绍操作系统的多级反馈调度策略,时间片轮转,在项目中如何指定优先级来调度进程完成快速响应(nice命令) 多级反馈队列调度 时间片轮转 使用nice命令 聊内存分配,进程内存分配,段页式存

大模型大数据攻城狮的专栏 4169

【黑马程序员】10. 正则表达式总结

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------     一直以来对正则表达式的使用存在很多疑惑,正则表达式中的符号太多太杂,记忆起来有一定的难度,容易混淆。不过,如果真的熟练掌握了正则,那会是一件多么幸福的事,因为它可以通过简短的代码来实现非常强大的功能。为了加深对这些特

Unity3D之旅 1648

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

黑马python高级阶段测试题_Python学习路线图--Python高级

Python学习路线图的第二个阶段是Python高级的学习,学完后需要掌握的Python技能:1. 熟练使用Linux操作系统;2. 掌握网络编程相关技术, 能够实现网络间数据通信;3. 掌握程序设计开发中多任务实现方式;4. 熟练掌握MySQL操作相关技术, 熟练编写各种数据库操作SQL语句, 并能够进行Python与MySQL之间的数据交互;5. 掌握Python中的re模块的使用, 能够实现...

weixin_40003512的博客 436

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

零基础学习开发应该怎么学?如何入门?

除了学习资源,今天聊点不一样的。曾经有一个自学的小伙伴,问过我很多基础的问题,比如github是什么,为什么大家都在讨论xx框架....,他用了7个月的时间成为了一名开发。下面聊聊他是怎么做的。

黑马程序员官方博客 250

Java怎么入门?如何做好学习计划?

Java 基本语法、Java 平台应用、Java的核心概念:JVM、JDK、JRE以及Java面向对象思想,同时要会学到如何在系统中搭建Java开发环境,以及如何利用第三方工具进行Java程序的开发。只要找到合适的自己的学习方式,找到现阶段比较全面的学习资料,在学习过程中记笔记+写代码。坚持下去就可以很快入门。

黑马程序员官方博客 345

Java 黑马程序员学习笔记(进阶篇5)

(2) 请编写 Java 程序,从这段文本中提取所有 "Java" 字符串,但要求这些 "Java" 后面必须紧跟着 "8"、"11" 或 "17"(即仅匹配 "Java8"、"Java11"、"Java17" 中的 "Java" 部分),并将提取到的 "Java" 依次打印输出。(1) 包含 “Java”(不区分大小写,即 “Java”“java”“JAVA” 等形式都需匹配,本题文本中仅含 “Java”);(2) 编译的好处是:如果需要多次使用同一个正则(比如在循环或多个方法中),编译一次后复用。

2302_79807388的博客 946

黑马程序员--JavaJAVA 正则表达式 (超详细)

-------android培训、java培训、期待与您交流! ----------  在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包。   可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表达式。正则表达式是个极端强大工具,而且在字符串模式-匹配和字符串模式-替换方面

hanxindere的专栏 770

黑马程序员--学习笔记-正则表达式总结

\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,"n"匹配字符"n"。"\n"匹配换行符。序列"\\"匹配"\","\("匹配"("。 ^ 匹配输入字符串开始的位置。如果设置了 R

239

黑马程序员面试题

1 .如何查看CPU信息? /proc/meminfo 2 . 查看占用CPU使用率最高的进程? ps -aux | sort -k3nr | head -K 3 .如何查看一个文件的末尾50行? 查看/etc/profile的前 10行内容,应该是: #head -n 10 /etc/profile 查看/etc/profile的最后50行内容,应该是: #tail -n 50 /etc/pro...

MK750的博客 1039

零基础如何学习Java?Java学习路线图

课程内置大量的案例实战,初学者可以学练合一,对 Java 语言形成完整体系,并能得到自己的心得,足以轻松应对薪酬 30万+ 的 Java 基础面试。20 天学会 Java - 1. Java 课程简介​www.zhihu.com/education/video-course/1483149993460109313正在上传…JDK8-15新特性 → 编程强化 → 数据库强化 → 安全框架SpringSecurity → 报表技术 →。VelocityTools → 工作流Activiti7……

黑马程序员官方博客 498

黑马Nginx基础学习笔记

Nginx(“engine x”)一个具有高性能的【HTTP】和【反向代理】的【WEB服务器】,同时也是一个【POP3/SMTP/IMAP代理服务器】,是由伊戈尔·赛索耶夫(俄罗斯人)使用C语言编写的,Nginx也可以作为电子邮件代理服务器。

weixin_65412794的博客 414

JavaSe学习笔记

JavaSe学习笔记

MinQo的博客 2350

【JavaSE学习】05-1常用API

JavaSE(B站黑马)学习笔记 05-1常用API

weixin_48074431的博客 1162
上一篇: “黑马程序员"Comparable与Comparator的区别
下一篇: “黑马程序员”线程同步的问题
tangjinjava
博客等级 码龄16年 0粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值