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

2023-09-19 12:36:24

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

这篇文章通过实现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开发中如何使用正则表达式应该有了一个较为清晰的认识。

更多推荐

web系统安全设计原则

一、前言近日,针对西工大网络被攻击,国家计算机病毒应急处理中心和360公司对一款名为“二次约会”的间谍软件进行了技术分析。分析报告显示,该软件是美国国家安全局(NSA)开发的网络间谍武器。当下,我们发现对于我们发布到互联网的软件和系统的安全审查越来越严格。因为web系统天生的伴随着很多漏洞的产生,这是就给很多不法分子留

kubernetes核心概念 Service

kubernetes核心概念Service一、service作用使用kubernetes集群运行工作负载时,由于Pod经常处于用后即焚状态,Pod经常被重新生成,因此Pod对应的IP地址也会经常变化,导致无法直接访问Pod提供的服务,Kubernetes中使用了Service来解决这一问题,即在Pod前面使用Servi

B+树的定义以及查找

1.B+树的定义一棵m阶的B+树需满足下列条件:每个分支结点最多有m棵子树(孩子结点)。非叶根结点至少有两棵子树,其他每个分支结点至少有「m/2]棵子树。结点的子树个数与关键字个数相等。所有叶结点包含全部关键字及指向相应记录的指针,叶结点中将关键字按大小顺序排列,并且相邻叶结点按大小顺序相互链接起来(支持顺序查找)。所

【Linux成长史】Linux基本指令大全

🎬博客主页:博主链接🎥本文由Mmalloc原创,首发于CSDN🙉🎄学习专栏推荐:LeetCode刷题集数据库专栏初阶数据结构🏅欢迎点赞👍收藏⭐留言📝如有错误敬请指正!📆未来很长,值得我们全力奔赴更美好的生活✨文章目录😇本章详情😇Linux指令⏳more指令⏳less指令(重要)⏳head指令⏳时间相

NumPy数值计算

1、Numpy概念1.1Numpy是什么?Numpy是(NumericalPython的缩写):一个开源的Python科学计算库使用NumPy可以方便的使数组、矩阵进行计算包含线性代数、傅里叶变换、随机数生成等大量函数1.2为什么使用Numpy对于同样的数值计算任务,使用NumPy比直接编写Python代码实现,优点:

React小项目-在线计算器(下)

CONTENTS1.Django项目初始化2.登录/注册后端功能实现3.登录/注册前端界面设计4.登录前后界面的转换5.将React与Django结合并部署至云端本文为React项目(在线计算器)的下篇内容,主要为后端部分的开发,上篇可见:React小项目-在线计算器(上)。1.Django项目初始化我们先在项目根目录

使用Selenium和Python自动预订车票

在本文中,我们将探讨如何使用Selenium和Python自动预订车票。我们将以12306.cn网站为例,演示自动化预订车票的过程。通过阅读本文,您将更好地了解如何使用Selenium与网页进行交互。准备工作首先,我们需要安装Selenium库。您可以使用以下命令在您的Python环境中安装Selenium:shell

基于LUT查找表方法的图像gamma校正算法FPGA实现,包括tb测试文件和MATLAB辅助验证

目录1.算法运行效果图预览2.算法运行软件版本3.部分核心程序4.算法理论概述5.算法完整程序工程1.算法运行效果图预览将gamma=2.2和gamma=1/2.2的数据分别导入到matlab进行对比:2.算法运行软件版本matlab2022a3.部分核心程序`timescale1ns/1ps////Company:/

公共4G广播音柱有哪些用处

公共广播音柱有哪些用处公共广播音柱是一种用于广播音频信号的设备,一般安装在公共场所或街道上。它具有以下几个主要用处:1.喊话广播:公共广播音柱可以用于喊话广播,用来传达重要信息、紧急通知、警报等,如公共安全提示、灾害警报、紧急疏散指示等。2.音乐播放:公共广播音柱可以通过播放音乐来为公共场所创造愉悦的氛围,如在公园、广

【STM32】使用RTE ,从 0 开始创建一个 (keil) ARM MDK工程(纯keil,标准库,以STM32F103C8T6为例)

学习相关的基础知识请阅读本专栏其他文章,一定有你想要的。https://blog.csdn.net/weixin_43764974/category_11021363.html本文软硬件:STM32F103C8T6ARMMDK5.38ARMcomplier6ST-Linkv2StdPeriphDrivers(标准库)一

Java基础(二十四):MySQL

文章目录一、数据库(创建、显示、删除、备份、恢复)二、MySQL常用数据类型2.1数值型(整数)2.2数值型(二进制bit)2.3数值型(小数)2.4字符型2.5日期类型三、表结构的操作四、表的增删改查4.1插入INSERT4.2修改UPDATE4.3删除DELETE4.4(单表)查询SELETE五、函数5.1排序、统

热文推荐