Java学习——正则表达式

正则表达式是一种强大的文本处理工具,用于搜索、匹配、替换文本。它们定义了字符串的搜索模式,可以快速地检查一个字符串是否与某个模式匹配,提取匹配字符串,或者执行替换操作。正则表达式在文本编辑器、编程语言和数据库管理中广泛应用。

基本组成

正则表达式由普通字符(例如字母和数字)以及特殊字符(称为"元字符")组成。以下是一些基本元字符及其用途:

  • .:匹配除换行符以外的任意单个字符。
  • ^:匹配输入字符串的开始位置。
  • $:匹配输入字符串的结束位置。
  • *:前面的字符可以出现零次或多次。
  • +:前面的字符至少出现一次。
  • ?:前面的字符最多出现一次。
  • {n}:前面的字符恰好出现n次。
  • {n,}:前面的字符至少出现n次。
  • {n,m}:前面的字符至少出现n次,但是不超过m次。
  • []:字符集合。匹配所包含的任意一个字符。
  • |:选择。匹配|前后的任意一个表达式。
  • ():分组符号,把各个字符组合成一个组进行处理。

转义特殊字符

在正则表达式中,如果你想匹配元字符本身,比如"?""*",你需要使用反斜杠(\)对它们进行转义。例如,\?匹配问号,\*匹配星号。

常用的预定义字符类

  • \d:任意数字,等价于[0-9]
  • \D:任意非数字,等价于[^0-9]
  • \s:任意的空白符(包括空格、制表符、换行符等)。
  • \S:任意的非空白符。
  • \w:任意的单词字符(包括字母、数字和下划线)。
  • \W:任意的非单词字符。

示例

  • 匹配邮箱地址
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}

在Java中使用正则表达式

Java通过java.util.regex包中的PatternMatcher类提供对正则表达式的支持。

示例:检查字符串是否为数字
import java.util.regex.*;public class Main {public static void main(String[] args) {String input = "12345";String regex = "\\d+";Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(input);if (matcher.matches()) {System.out.println(input + " is a number.");} else {System.out.println(input + " is not a number.");}}
}

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

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

相关文章

R3F(React Three Fiber)基础篇

之前一直在做ThreeJS方向,整理了两篇R3F(React Three Fiber)的文档,这是基础篇,如果您的业务场景需要使用R3F,您又对R3F不太了解,或者不想使用R3F全英文文档,您可以参考一下这篇&…

【Python笔记-设计模式】享元模式

一、说明 享元模式是一种结构型设计模式,它摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。 (一) 解决问题 旨在减少大量相似对象创建时的内存开销 (二) 使用场景 大量…

AI:136-基于深度学习的图像生成与风格迁移

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…

github 笔记: fatal: Could not read from remote repository.

git clone 包时出现这两行报错 gitgithub.com: Permission denied (publickey). fatal: Could not read from remote repository.这意味着 SSH 认证失败了,通常是因为本地机器的 SSH 密钥未被 GitHub 账户识别/未正确设置。在终端中使用 ssh -T gitgithub.com 可以…

微服务三十五关

1.微服务有什么好处? 微服务优点很多,但是我们通常说一个东西好肯定会跟另一个东西比较, 通常说微服务好会和单体项目进行比较。以下是微服务相对于单体项目的一些显著好处: 首先,让我们讨论单体项目的一些主要缺点&a…

STM32_LCD1602_2_液晶屏初始化

HD44780的指令集及其设置说明 共11条指令: 清屏指令 指令功能指令编码执行时间/msRSR/WDB7DB6DB5DB4DB3DB2DB1DB0清屏00000000011.64 功能: 清除液晶屏,即将DDRAM的所有内容都写为“空”的ASCII的20H;光标归位,即将光…

多态与代码屎山

到底什么是多态呢?多态是面向未来的,比如企业采购为例: 一般分为线上合线下两种, 我们设计一个父类叫做"采购", 里面做一些共通的处理: 申请, 承认, 支付, 购买方式. 然后让各自的子类(线上,线下)实现自己的方法.实际调用过程中传入不同的对象就可以.到此为止项目开…

在线程调用的函数中使用pthread_exit同样会将线程退出

如上图所示,在func()函数中调用pthread_exit,同样可以退出当前线程; 类似的,如果func()函数中调用exit,可以直接退出整个进程。 return 是返回到函数调用处; pthread_exit是退出…

KTV点歌系统vue+springboot音乐歌曲播放器系统

目前现有的KTV点歌系统对于用户而言其在线点歌流程仍然过于繁琐,对于歌曲而言其系统安全性并不能保障。同时整套系统所使用的技术相对较为落后,界面不能动态化展示。相比较于其它同类型网站而言不能体现技术先进性。 1.2 项目目标 KTV点歌系统的后台开发…

wpf 3d 后台加载模型和调整参数

下载了一个代码,加载obj模型;它的参数在xaml里,模型加载出来刚好; 然后加载另一个obj模型;加载出来之后大,偏到很高和左的位置; 它之前的摄像机位置, Position"9.94759830064…

Apache celeborn 安装及使用教程

1.下载安装包 https://celeborn.apache.org/download/ 测0.4.0时出现https://github.com/apache/incubator-celeborn/issues/835 2.解压 tar -xzvf apache-celeborn-0.3.2-incubating-bin.tgz 3.修改配置文件 cp celeborn-env.sh.template celeborn-env.shcp log4j2.xml.…

前后端分离Vue+nodejs校园论坛bbs系统x450z

开发语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode本论文拟采用计算机技术设计并开发的论坛bbs系统,主要是为用户提供服务。使得用户可以在系统上查看帖子信息、签到积分等…

jQuery中的事件与DOM操作

jQuery事件 jQuery事件是对JavaScript事件的封装,常用事件分类 基础事件 鼠标事件键盘事件window事件表单事件绑定事件与移除事件复合事件 鼠标光标悬停鼠标连续点击jQuery基础事件 鼠标事件 鼠标事件是当用户在文档上移动或单击鼠标时而产生的事件 下面是一个使用 Markdow…

大厂嵌入式公司面试真题

面试题: 基础知识题 请解释C语言中的指针是什么以及它们如何工作?描述C语言中的动态内存分配。malloc、calloc、realloc和free这些函数有何区别?C语言中的宏(macro)和函数之间有什么不同?代码理解题 #incl…

详解Megatron中的数据混合算法(BlendableDataset)

🧑‍💻 本文主要讲解Megatron早期版本中的数据混合算法。 目录 1. 数据混合2. 源码解析3. 证明部分&讨论4. 进一步优化 1. 数据混合 在谈源码之前,我们有必要先了解一下Megatron中的数据混合思想。 给定 n n n 个数据集 D 1 , D 2 , …

给定一个边与边可能相交的多边形,求它的轮廓线

大家好,我是前端西瓜哥。 最近遇到一个需求,给定一个多边形(边与边可能相交),求这个多边形的轮廓线。 需要注意的是,轮廓线多边形内不能有空洞,使用的不是常见的非零绕数规则(nonze…

Java+SpringBoot,打造极致申报体验

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

2024全国水科技大会暨流域水环境治理与水生态修复论坛(六)

论坛召集人 冯慧娟 中国环境科学研究院流域中心研究员 刘 春 河北科技大学环境与工程学院院长、教授 一、会议背景 为深入贯彻“山水林田湖是一个生命共同体”的重要指示精神,大力实施生态优先绿色发展战略,积极践行人、水、自然和谐共生理念&…

VOL_常用记录!!-----后端

目录 1.后台配置appsettings.json说明2.service.cs扩展 表/明细表(CRUD导入导出)前后做一些操作 数据(CRUD导入导出)前后的处理参数或数据2.编辑3.新建4.查询5.导出6.导入 注意事项:后台扩展必须写在代码生成的Partial部分类里面 防止代码生成后覆盖你的扩展的代码 …

opencascade在vs和qt下改变视图方向和设置线框模式

一.改变视图方向(以顶部视图为例) 1.在qt的界面代码中设置好 2.在view.h中设置好槽函数 3.在lzzcad.cpp中设置槽与信号的连接,并在工具栏上显示 4.在view.cpp中给出函数实现 5.给出快捷键实现方式 二.设置线框模式 同上,加入函数…