当前位置: 首页 > news >正文

Java038——正则表达式

一、认识正则表达式

正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。例如,“\d”表示数字 0~9 中的任何一个,“d”就是元字符。正则表达式中的元字符及其意义下所示。

元字符				正则表达式中的写法						意义		
. 							.							任意一个字符
\d							\\d							0~9 的任何一个数字
\D							\\D							任何一个非数字字符
\s							\\s							空白字符,如'\t''\n'
\S							\\S							非空白字符
\w							\\w							可用于标识符的字符,但不包括“$”
\W							\\W							不可用于标识符的字符
\p{Lower}					\\p{Lower}					小写字母 a~z
\p{Upper}					\\p{Upper}					大写字母 A~Z
\p{ASCI}					\\P{ASCI}					ASCI 字符
\p(Alpha}					\\p(Alpha}					字母字符
\p{Digit}					\\p{Digit}					十进制数字,即 0~9
\p{Alnum}					\\p{Alnum}					数字或字母字符
\p{Punct}					\\p{Punct}					标点符号: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
\p{Graph}					\\p{Graph}					可见字符:[\p{Alnum}\p{Punct}]
\p{Print}					\\p{Print}					可打印字符:[\p{Graph}\x20]
\p{Blank}					\\p{Blank}					空格或制表符:[\t]
\p{Cntrl}					\\p{Cntrl}					控制字符:[\x00-\x1Fx7F]

在正则表达式中,“.“代表任何一个字符,因此在正则表达式中如果想使用普通意义的点字符”.“必须使用转义字符”/

二、在正则表达式中方括号的作用

在正则表达式中,可以使用方括号括起若干个字符来表示一个元字符,该元字符可代表方括号中的任何一个字符。例如,reg =“[abc]4”,这样字符串 a4、b4、c4 都是和正则表达式匹配的字符串。方括号元字符还可以为其他格式。如:

   方括号表达式				说明
======================================================================================================================表示枚举				例如[abc]表示 a、b、c 其中任意一个字符;[gz]表示 g、z 其中任意一个字符
----------------------------------------------------------------------------------------------------------------------表示范围:-			例如[a-f]表示 a~f 范围内的任意字符;[\\u0041-\\u0056]表示十六进制字符 \u0041 到 \u0056 范围的字符。范围可以	和枚举结合使用,如[a-cx-z],表示 a~c、x~z 范围内的任意字符
----------------------------------------------------------------------------------------------------------------------表示求否:^			例如[^abc]表示非 a、b、c 的任意字符;[^a-f]表示不是 a~f 范围内的任意字符
----------------------------------------------------------------------------------------------------------------------表示“与”运算:&&		例如 [a-z&&[def]]是 a~z 和 [def] 的交集,表示 d、ef[a-z&&^bc]]是 a~z 范围内的所有字符,除 b 和 c 之外[ad-z] [a-z&&[m-p]]是 a~z 范围内的所有字符,除 m~p 范围之外的字符
----------------------------------------------------------------------------------------------------------------------表示“并”运算			并运算与前面的枚举类似。例如[a-d[m-p]]表示 [a-dm-p]

简单例子

[^456]: 代表 456之外的任何字符。
[a-r]: 代表 a~r 中的任何一个字母。
[a-zA-Z]: 可表示任意一个英文字母。
[a-e[g-z]]:代表 a~e 或 g~z 中的任何一个字母 (并运算)[a-o&&[def]]: 代表字母 d、e、f (交运算)[a-d&&[^bc]]: 代表字母 a、d (差运算)

三、在正则表达式中使用限定修饰符

在正则表达式中允许使用限定修饰符来限定元字符出现的次数。例如,“A*”代表 A 可在字符串中出现 0 次或多次。限定修饰符的用法如下 所示。

限定修饰符		   意义			示例?			0次或1A*			0次或多次		A*+			1次或多次		A+{n}			正好出现n次		A{2}{n,}		至少出现n次		A{3}	{n,m}		出现n~m次		A{26}

四、Java 正则表达式使用

  1. 导入 Java 正则表达式库:
    在代码中首先导入 java.util.regex 包,以便使用正则表达式相关的类和方法。
import java.util.regex.*;
  1. 实例:使用Java使用正则表达式判断字符串变量str以wang开头以5688结尾
package MyPackage;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class TestDemo{public static void main(String[] args) {String str = "wang12345688";// 1、定义正则表达式String regex = "^wang.*5688$";// 2、编译正则表达式为 Pattern 对象Pattern pattern = Pattern.compile(regex);// 3、创建 Matcher 对象,用于进行匹配Matcher matcher = pattern.matcher(str);// 4、判断是否匹配成功if (matcher.matches()) {System.out.println("字符串匹配成功");} else {System.out.println("字符串匹配失败");}}
}//运行结果
字符串匹配成功

推荐文章《Java正则表达式详解》

与君共享

👉👉👉👉👉最后,有兴趣的小伙伴可以点击下面链接,这里有我整理的完整Java学习博客内容,谢谢~ 🌹🌹🌹🌹🌹

《Java基础专栏完整学习》

相关文章:

Java038——正则表达式

一、认识正则表达式 正则表达式通常被用于判断语句中&#xff0c;用来检查某一字符串是否满足某一格式。正则表达式是含有一些具有特殊意义字符的字符串&#xff0c;这些特殊字符称为正则表达式的元字符。例如&#xff0c;“\d”表示数字 0~9 中的任何一个&#xff0c;“d”就…...

JavaScript元素选择器

目录 一、getElementsByTagName1.说明2.用法示例 二、getElementsByName1.说明2.用法示例 三、getElementById1.说明2.用法示例 四、getElementsByClassName1.说明2.用法示例 五、querySelector1.说明2.用法示例 六、querySelectorAll1.说明2.用法示例 七、综合示例 一、getEle…...

Docker安装 elasticsearch-head

目录 前言安装elasticsearch-head步骤1&#xff1a;准备1. 安装docker2. 搜索可以使用的镜像。3. 也可从docker hub上搜索镜像。4. 选择合适的redis镜像。 步骤2&#xff1a;拉取elasticsearch-head镜像拉取镜像查看已拉取的镜像 步骤3&#xff1a;创建容器创建容器方式1&#…...

交换排序——选择排序和冒泡排序的区别是什么?

今天重温一下算法&#xff0c;其实刚开始我觉得冒泡排序和选择排序是一样的&#xff0c;因为他们排序过程中都是通过相邻的数据比较找到最小/最大的数据&#xff0c;通过不断思考和学习才明白&#xff0c;两者还是有区别的。 冒泡排序 概念 冒泡排序(Bubble Sort)&#xff0…...

吉他谱:Melodies of Life - Final Fantasy Solo Guitar Collections

原始出处&#xff1a; Final Fantasy Solo Guitar Collections - 南泽大介改编的最终幻想9主题曲吉他谱 更多吉他谱&#xff1a; https://github.com/NaisuXu/Guitar_Sheet_Music_Collection...

微信小程序下拉刷新

小程序中的下拉刷新 - 掘金...

TX2 NX 修改设备树--GPIO

确认模组内使用的是哪个设备树文件 模组上电输入如下指令,查看返回值:cat /proc/device-tree/nvidia,dtsfilename找到相应的设备树文件设备树存放路径 /public_sources/Linux_for_Tegra/source/public/kernel_src/hardware/nvidia/platform/t18x/lanai/kernel-dts 确认设备树…...

.NET对象的内存布局

在.NET中&#xff0c;理解对象的内存布局是非常重要的&#xff0c;这将帮助我们更好地理解.NET的运行机制和优化代码&#xff0c;本文将介绍.NET中的对象内存布局。 .NET中的数据类型主要分为两类&#xff0c;值类型和引用类型。值类型包括了基本类型(如int、bool、double、cha…...

Hybrid App 可以从哪些技术路径实现性能优化

说到 Hybrid App&#xff08;混合应用&#xff09;大家都不陌生&#xff0c;因为这种开发模式大行其道发展的这些年取代了很多原生和 Web 应用&#xff0c;为什么大家对这种「Native HTML5」的开发模式额外偏爱呢&#xff1f; 因为一方面在一定程度上兼顾了原生应用的优质体验…...

C++入门篇7---string类

所谓的string类&#xff0c;其实就是我们所说的字符串&#xff0c;本质和c语言中的字符串数组一样&#xff0c;但是为了更符合C面向对象的特性&#xff0c;特地将它写成了一个单独的类&#xff0c;方便我们的使用 对其定义有兴趣的可以去看string类的文档介绍&#xff0c;这里…...

2308d的静态构造函数循环依赖示例

原文 //Steve: __gshared string[string] dict; shared static this() {dict ["a" : "b"]; }这里有两个论点:这不能是CRT构造器,因为它依赖于D运行时,并且认为它应该进入自己的模块是一个QoL问题,当你想要私有到类而不是私有到模块时,可为类提供它,因为语…...

Linux 目录和文件常见操作

就常见的命令&#xff1a; pwd pwd 显示当前的目录 目录迁移 我以如下的目录大致结构做一个简单的例子 cd 迁移到指定的路径&#xff0c;可以指定相对路径和绝对路径&#xff0c;默认相对 .指向当前路径&#xff0c;…/ 指向上一级的目录。 ls 列出文件及其目录 命令选…...

不基于比较的排序:基数排序

本篇只是讨论桶排序的具体实现&#xff0c;想了解更多算法内容可以在我的博客里搜&#xff0c;建议大家看看这篇排序算法总结&#xff1a;排序算法总结_鱼跃鹰飞的博客-CSDN博客 桶排序的原理&#xff1a; 代码&#xff1a;sort1是一个比较二逼的实现方式浪费空间&#xff0c;s…...

shell和反弹shell

文章目录 是什么&#xff1f;bash是什么&#xff1f;反弹shell 是什么&#xff1f; Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言&#xff0c;又是一种程序设计语言。 Shell 是指一种应用程序&#xff0c;这个应用程序提供了…...

构建Docker容器监控系统(Cadvisor +Prometheus+Grafana)

Cadvisor PrometheusGrafana 1.1、Cadvisor产品简介 Cadvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行Cadvisor用户可以轻松的获取到当前主机上容器的运行统计信息&#xff0c;并以图表的形式向用户展示。 1.2、安装docker-ce [rootloc…...

java实现文件的下载

系统日志的获取不可能每次都登录服务器&#xff0c;所以在页面上能够下载系统运行的日志是必须的 如何来实现日志的下载&#xff0c;这样的一个功能 前端我们用到的是window.open(...)这样可以发送一个get请求到后台 后台接收到get请求之后&#xff0c;如何实现对文件的下载 R…...

分享Python技术下AutojsPro7云控代码

引言 有图有真相&#xff0c;那短视频就更是真相了。下面是三大语言的短视频。 Java源码版云控示例&#xff1a; Java源码版云控示例在线视频 Net源码版云控示例&#xff1a; Net源码版云控示例在线视频亚丁号-知识付费平台 支付后可见 扫码付费可见 Python源码版云控示例…...

【Linux】网络通信

【Linux】网络通信 文章目录 【Linux】网络通信1、网络基础1.1 计算机网络1.2 网络模型TCP & UDP1&#xff09;IP地址2&#xff09;端口3&#xff09;TCP协议与UDP协议的比较 1.3 网络传输1.3.1 传输逻辑1.3.2 传输条件1.3.3 传输流程 1.4 地址管理 2、网络编程2.1 基本概念…...

【mysql】—— 表的约束

目录 序言 &#xff08;一&#xff09;空属性 &#xff08;二&#xff09;默认值 &#xff08;三&#xff09;列描述 &#xff08;四&#xff09;zerofill &#xff08;五&#xff09;主键 &#xff08;六&#xff09;自增长 &#xff08;七&#xff09;唯一键 &#…...

jeecgboot 登录成功默认其他路由

util.js...

如果要开始搭自己的 Agent 工作流,第一批最值得接入的工具到底有哪些?

如果要开始搭自己的 Agent 工作流&#xff0c;第一批最值得接入的工具到底有哪些&#xff1f;很多人一开始搭 Agent&#xff0c;最容易陷入的误区不是模型选错&#xff0c;而是工具接得太多、太杂、太早。结果看起来像在搭系统&#xff0c;实际却把复杂度先堆起来了。当前大家聊…...

告别Flutter后台任务被“杀”:保姆级配置background_fetch的8个关键参数与避坑清单

Flutter后台任务保活实战&#xff1a;深度解析background_fetch的8个核心参数与厂商适配策略 当你的Flutter应用需要在后台默默完成数据同步、位置上报或消息推送时&#xff0c;是否经常遇到任务被系统无情终止的困扰&#xff1f;不同Android厂商对后台任务的限制策略千差万别…...

2025届最火的六大AI辅助写作方案解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于内容创作里头&#xff0c;要是过度去依赖人工智能&#xff0c;那么就有可能致使文本欠缺人…...

量子储层计算在对抗鲁棒性中的优势与应用

1. 量子储层计算与对抗鲁棒性研究概述量子储层计算&#xff08;Quantum Reservoir Computing, QRC&#xff09;是近年来量子机器学习领域兴起的一种新型计算范式。与传统的变分量子电路不同&#xff0c;QRC的核心思想是利用量子多体系统固有的高维非线性动力学特性作为"计…...

告别白边和乱码:ST7735S驱动1.8寸TFT屏的常见坑点与调试指南(PCtoLCD2002取模详解)

告别白边和乱码&#xff1a;ST7735S驱动1.8寸TFT屏的常见坑点与调试指南 在嵌入式开发中&#xff0c;1.8寸TFT屏因其小巧尺寸和SPI接口的便捷性&#xff0c;成为许多项目的首选显示方案。但当你按照基础教程点亮屏幕后&#xff0c;真正挑战才刚刚开始——自定义显示时出现的白边…...

免费开源CAD软件LitCAD:如何用轻量级工具完成专业二维绘图?[特殊字符]

免费开源CAD软件LitCAD&#xff1a;如何用轻量级工具完成专业二维绘图&#xff1f;&#x1f680; 【免费下载链接】LitCAD A very simple CAD developed by C#. 项目地址: https://gitcode.com/gh_mirrors/li/LitCAD 你是否正在寻找一款完全免费、易于上手却功能强大的C…...

2026最权威的六大AI论文网站实际效果

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下&#xff0c;于学术范畴内&#xff0c;借助人工智能来辅助学术写作之事已然成了一种趋向…...

[具身智能-418]:URDF 文件详解

URDF&#xff08;统一机器人描述格式&#xff09;是机器人操作系统&#xff08;ROS&#xff09;中用于描述机器人模型的标准 XML 文件格式。你可以把它理解为机器人的“数字孪生说明书”&#xff0c;它精确地定义了机器人的物理结构、运动学关系、动力学参数和视觉外观&#xf…...

超详细!【网络安全】基础知识详解,零基础入门到精通,永久收藏

一、什么是网络安全&#xff1f; 百度上对“网络安全”是这么介绍的&#xff1a; “网络安全是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露、系统连续可靠正常地运行&#xff0c;网络服务不中断。” 嗯…是…...

生产覆膜白卡公司推荐

在当今的商业社会中&#xff0c;各类卡片的使用场景愈发广泛&#xff0c;覆膜白卡作为其中一种重要的卡片类型&#xff0c;其质量和适用性备受关注。如果你正在寻找一家可靠的覆膜白卡生产公司&#xff0c;那么广州杰众智能科技有限公司绝对值得考虑。一、公司实力与信誉有保障…...