5个小功能掌握正则表达式的使用

news2024/11/25 0:26:44

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~

这篇文章通过实现5个小功能,来讲述在Java中如何使用正则。

Java中如何使用正则

Java中正则相关类位于java.util.regex包下,主要使用2个类,如下:

4d6c482019b5d06a1ce5e038f3bca04b.png

Pattern类:

Pattern是正则表达式regex的编译表示形式

0c52f1fe9a87daf25cd0438ef0ea4339.png

Matcher类:

通过解释Pattern对输入的字符串input执行匹配操作的引擎

ca34b12cf63d1d844b0ff08381827fd2.png

注意:在Java代码中转义字符“\”要写成“\\”才表示一个“\”。

比如regex=\d,在Java代码中应该写成“\\d”。

下面我们通过几段Java代码来感受一下,除了功能1的代码是完整代码外,其余功能代码,我只给出main()方法。

功能1:判断给定的字符串是否与给定的正则表达式完全匹配

884a27c86d636bbb692f72dbf8e83638.png

说明:matches()方法,尝试将整个区域与模式匹配。

regex=\w+表示匹配至少一个字母或者数字或下划线[a-zA-z0-9_],所以字符串“HelloWord”与这个正则完全匹配。

功能2:判断给定的字符串是否包含至少一个数字

dec522f1a3daad0b9696a242753022b0.png

说明:find()方法,尝试查找与该模式匹配的输入序列的下一个子序列,如果存在多个子串,find()方法能找到所有符合条件的子串。

regex=\d+表示匹配至少一个数字,所以字符串“HelloWord,666!”可以匹配这个正则。

4、功能3:从给定的字符串里找出所有的数字子串

5aed57d976e06a08979df7f57719ecba.png

说明:group()方法,返回在以前匹配操作期间由给定组捕获的输入子序列。即通过find()方法找到的符合条件的子串可以通过group()方法获取。

regex=\d+表示匹配至少一个数字,字符串“HelloWord,666,888!”可以匹配这个正则2次,通过group()方法获取到了匹配的数字666与888。

功能4:把给定的字符串里的所有数字替换为星号“*”

0cd7d86b17d5eee1bdfce3b8a98fb6f3.png

说明:replaceAll()方法,替换模式与给定字符串相匹配的输入序列的每个子序列。即通过replaceAll()方法把符合条件的子串替换成replaceAll()方法中的参数。

regex=\d+表示匹配至少一个数字,字符串“Beijing 666,China 888!”可以匹配这个正则2次,通过replaceAll(“*”)方法把匹配的数字666与888替换成了***,因此替换后的字符串为“Beijing ***,China ***!”。

功能5:把给定的字符串通过正则表达式进行拆分

9352a6765f78d93567f525a7cc2b2a7d.png

说明:String的split()方法,根据给定正则表达式的匹配拆分此字符串。

字符串“Beijing010shanghai021tianjin022!!!”可以匹配3次regex=\d+,通过split()方法按数字进行拆分,拆分出4组内容,分别是“Beijing”, “shanghai”, “tianjin”, “!!!”。

通过以上5个功能代码段,对Java开发中如何使用正则表达式应该有了一个较为清晰的认识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1036839.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Maven入门篇】(1)详细讲解Maven的安装报错解决

🎊专栏【Maven入门篇】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【The truth that you leave】 🥰欢迎并且感谢大家指出我的问题 文章目录 🌺Maven介绍⭐作用⭐官网 🎄maven安…

mysql 5.7 修改密码

为了提高安全性 mysql5.7中user表的password字段已被取消,取而代之的事 authentication_string 字段,当然我们更改用户密码也不可以用原来的修改user表来实现了。下面简绍几种mysql5.7下修改root密码的方法(其他用户也大同小异)。…

整洁架构能有多整洁?

前段时间,我将一个中大型后端项目顺利地从Spring Boot 2.5 迁移到了Spring Boot 3,整个过程仅花了一天左右时间,在小酌庆祝之余,我开始思考此次迁移之所以能够顺利进行的原因,此时一个概念立即闪现脑海——整洁架构。 …

ARM Cortex-M内核中系统堆栈

文章目录 有无OS的栈结构区别:裸机的任务栈结构带FreeRTOS操作系统的任务栈 ARM的寄存器有哪些特殊寄存器有哪些 关于FreeRTOS中的SP寄存器栈操作【压栈与弹栈的操作】一般函数嵌套调用时sp指针的变化Cortex-M内核的MSP与PSP作用 有无OS的栈结构区别: 裸…

雷达设备问题(从另一个角度看待区间合并 + 贪心思路 + 未发现关键的错误样例)

雷达设备问题 文章目录 雷达设备问题前言题目描述题目分析代码详解错误案例分析:思路代码: 前言 对于区间合并问题,我们一般会将区间按照左端点或者是右端点进行排序,至于其中的选择要依据题目的分析,这里给大家用贪心…

Nginx 设置禁用 OPTIONS 请求

1、修改 nginx 配置 在 nginx.conf 配置文件中,增加如下内容: if ($request_method ~* OPTIONS) {return 403; }效果如下: 2、重启 nginx 服务 systemctl restart nginx或者 service nginx restart3、功能验证 使用如下命令&#xff…

【Java毕设项目】基于SpringBoot+Vue教务管理系统的开发与实现

博主主页:一季春秋博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容:毕业设计(Java项目、小程序、安卓等)、简历模板、学习资料、…

提升群辉AudioStation音乐体验,实现公网音乐播放

文章目录 本教程解决的问题是:按照本教程方法操作后,达到的效果是本教程使用环境:1 群晖系统安装audiostation套件2 下载移动端app3 内网穿透,映射至公网 很多老铁想在上班路上听点喜欢的歌或者相声解解闷儿,于是打开手…

Unity WebSocket-Server

🌼WebSocket-Server 🥪效果展示🌭启动Server🍱连接Server 🥪效果展示 在Unity中创建WebSocket服务器,从网页连接到该服务器进行消息通信,在Unity中接收到的消息都在主线程中 🌭启…

基于ssm的学生综合测评管理系统047

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

C\C++ 设置Visual Studio编译器使用C++17标准

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C-CSDN博客 简介: 使用ISO C17标准可以为开发人员带来许多好处,包括更简洁的代码、更高的运行效率、更好的硬件支持、更好的兼容性和可移植性&am…

基于springboot+vue的重庆旅游网(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

二、逻辑回归算法(LR,Logistic Regression)(有监督学习)

一、算法思路 逻辑回归本质就是基于多元线性回归,多元线性回归就是yw0 w1*x1 w2*x2 ... wn*xn 多元函数的值域是(-∞,∞),逻辑回归就是将值域映射到(0,1)之间,因为这样就可以变成一个概率值。常用的方法是将多元函数求解得到…

vscode调试webpack项目的方法

vscode调试webpack项目的方法 首先安装vscode插件Javascript Debugger 这个插件的介绍也写清楚了: An extension for debugging Node.js programs and Chrome. 那就是用来调试Node.js和Chrome的vscode扩展插件,包括typescript. 然后按F5启动调试&…

【LeetCode-简单题】589. N 叉树的前序遍历

文章目录 题目方法一:单循环栈做法方法二:递归 题目 方法一:单循环栈做法 关键在于子节点的入栈顺序,决定了子节点的出栈顺序, 因为是前序遍历 所以压栈顺序先让右边的入栈 依次往左 这样左边的节点会在栈顶 这样下次…

Linux CentOS7 vim多文件编辑

使用vim编辑多个文件,十分常用的操作。本文从打开、显示、切换文件到退出,进行简单讨论。 一、打开文件 1.一次打开多个文件 vim还没有启动的时候,在终端里输入vim file1 file2 … filen便可以打开所有想要打开的文件。 执行命令 vim fil…

深入解析哈希表、哈希映射和并发哈希映射的区别,以及死锁的成因和解决方案

目录 死锁死锁产生条件解决方案 HashTableConcurrentHashMapHashMap 死锁 死锁是多线程编程中常见的问题,当两个或多个线程互相等待对方持有的资源而无法继续执行时,就会发生死锁。这种情况下,程序会陷入无法恢复的状态,造成程序…

215. 数组中的第K个最大元素+17.14. 最小K个数(优先级队列)

目录 一、第K个最大元素 二、代码 三、最小K个数 四、代码 一、第K个最大元素 215. 数组中的第K个最大元素 - 力扣&#xff08;LeetCode&#xff09; 二、代码 class Solution { public:int findKthLargest(vector<int>& nums, int k) {priority_queue data(nu…

MySQL数据库的存储引擎

目录 一、存储引擎概念 二、存储引擎 2.1MyISAM 2.11MyISAM的特点 2.12MyISAM表支持3种不同的存储格式&#xff1a; 2.2 InnoDB 2.21InnoDB特点介绍 三、InnoDB与MyISAM 区别 四、怎么样选择存储引擎 五、查看存储引擎 六、查看表使用的存储引擎 七、修改存储引擎 …

Leetocde 404. 左叶子之和

左叶子之和 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 提示: 节点数在 [1, 1000] 范围内-1000 < Node.val < 1000 采用的是递归法 s1. 确定递归函数的参数和返回值 s2. 确定终止条件 if(root NULL)return 0;s3. 确定单层递归的逻辑 当遇到左叶…