正则表达式基本语法(快速认知)

正则表达式:一种用于匹配字符串的模式。它可以用于搜索、替换、验证字符串等多种操作。

基本语法:

  1. 字符类:

    • [abc]: 匹配 ab 或 c
    • [a-z]: 匹配小写字母。
    • [A-Z]: 匹配大写字母。
    • [0-9]: 匹配数字母

 

比如我们的电话号码是11个数字组成, 则可以表示为:

String tel="[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"表示11个0到9之间的数字,String中有matches方法,可以用于匹配正则表达式,正确返回true;

public class Main {public static void main(String[] args) {String tel="[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]";String num="19960991491";if (num.matches(tel)) {System.out.println("true");}}}

结果:true;


Java还提供了一系列预定义的符号,用于简化字符类的书写:

  • .: 匹配任意单个字符(除了换行符)。
  • \d: 匹配数字,等价于 [0-9]
  • \D: 匹配非数字字符,等价于 [^0-9]
  • \w: 匹配字母数字字符,等价于 [a-zA-Z0-9_]
  • \W: 匹配非字母数字字符,等价于 [^a-zA-Z0-9_]
  • \s: 匹配空白字符(空格、制表符、换行符等)。
  • \S: 匹配非空白字符。

 比如之前的电话号码也可简化为:

String tel="\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d";//第一个\表示转义字符随后跟一个\d

 电话号码这样写\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d会不会感觉很复杂,很多重复的数字,于是有了量词

    • *: 匹配前面的表达式零次或多次。
    • +: 匹配前面的表达式一次或多次。
    • ?: 匹配前面的表达式零次或一次。
    • {n}: 匹配前面的表达式恰好 n 次。
    • {n,}: 匹配前面的表达式至少 n 次。
    • {n,m}: 匹配前面的表达式至少 n 次,但不超过 m 次。

比如上面的电话号码还能改进为:

 String tel="\\d{11}";表示11个数字;


还有一些是反义字符,^表示非,除此之外的意思


分组括号

这个情况,大家应该都遇见过,他是怎么匹配的呢这就可以使用分组括号

 

它就可以写为:([A-Z0-9]{5}-){4}[A-Z0-9]{5}//用一个括号将一组元素表示出来,再用量词{n}表示匹配该组元素多少次,最后再加上最后一组元素

字符串中常用含有正则表达式的方法:

 

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

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

相关文章

uniapp 引入了uview-ui后,打包错误,主包过大解决方案

原因:由于使用uniapp来设计小程序,使用uview的组件库,导致了主包过大,无法打包 前提条件:已经完成了分包,如果还没有分包的先分包,需要上传代码时用到 1. 通常情况,大多数都是通过点…

构建中小企业设备管理平台:Spring Boot应用

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点

ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点MmIterateNextNode()按从左到右的顺序找到下一个结点 文章目录 ReactOS系统中平衡二叉树按从左到右的顺序找到下一个结点MmIterateNextNode()按从左到右的顺序找到下一个结点MmIterateNextNode() MmIterateNextNode() /*…

深入剖析 C 与 C++ 动态内存管理之术

亲爱的读者朋友们😃,此文开启知识盛宴与思想碰撞🎉。 快来参与讨论💬,点赞👍、收藏⭐、分享🥰,共创活力社区。 🔥🔥🔥【C】进阶:类相关…

Python实现基于WebSocket的stomp协议调试助手工具

stomp协议很简单,但是搜遍网络竟没找到一款合适的客户端工具。大多数提供的都是客户端库的使用。可能是太简单了吧!可是即便这样,假如有一可视化的工具,将方便的对stomp协议进行抓包调试。网上类似MQTT的客户端工具有很多&#xf…

linux shell 脚本语言教程(超详细!)

Shell 编程详细指南 什么是 Shell? Shell 是用户与操作系统内核之间的接口,允许用户通过命令行输入来控制操作系统。它充当命令解释器,读取用户输入的命令并执行相应的操作。Shell 提供了强大的脚本编程能力,可以自动化许多任务…

【javax maven项目缺少_Maven的依赖管理 引入依赖】

javax maven项目缺少_Maven的依赖管理 引入依赖 Maven的依赖管理 - 引入依赖依赖管理(引入依赖)导入依赖 https://blog.csdn.net/weixin_28932089/article/details/112381468 Maven的依赖管理 - 引入依赖 依赖管理(引入依赖) 能够掌握依赖引入的配置方式 导入依赖 导入依赖练…

银行客户贷款行为数据挖掘与分析

#1024程序员节 | 征文# 在新时代下,消费者的需求结构、内容与方式发生巨大改变,企业要想获取更多竞争优势,需要借助大数据技术持续创新。本文分析了传统商业银行面临的挑战,并基于knn、逻辑回归、人工神经网络三种算法&#xff0…

重构案例:将纯HTML/JS项目迁移到Webpack

我们已经了解了许多关于 Webpack 的知识,但要完全熟练掌握它并非易事。一个很好的学习方法是通过实际项目练习。当我们对 Webpack 的配置有了足够的理解后,就可以尝试重构一些项目。本次我选择了一个纯HTML/JS的PC项目进行重构,项目位于 GitH…

[旧日谈]高清画面撕裂问题考

背景 无边框透明背景透明的窗口,在随着缩放比例非整数倍数放大时的画面发生了露底、撕裂问题。 当我们在使用Qt开发的时候,遇到了一个结构性问题。因为我们的软件是自己做的,所以要自己定义标题栏,所以我们设置了软件为FrameLess…

mono源码交叉编译 linux arm arm64全过程

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

mysql——事务详解

一、事务定义 事务:事务是一个最小的不可在分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务是一个最小的工作单元)事务保证多条sql语句要么同时执行成功,要么同时执行失败一个完整的业务需要批量的DML…

移除Microsoft Edge浏览器“由你的组织管理“提示的方法

背景: 点击Microsoft Edge浏览器右上角的按钮有时候会出现提示“由你的组织管理”。但实际上自己的电脑并没有被公司或其他企业管理。 解决方案: 提示:修改注册表如果操作不当会影响电脑,请提前备份注册表!&#xff…

Java 开发——(上篇)从零开始搭建后端基础项目 Spring Boot 3 + MybatisPlus

一、概述 记录时间 [2024-10-23] 本文是一个基于 Spring Boot 3 MybatisPlus 的项目实战开发,主要涵盖以下几个方面: 从零开始的项目创建IDEA 中开发环境的热部署Maven、Swagger3、MybatisPlus 等的配置路由映射知识静态资源访问文件上传功能实现拦截器…

Qt之QCamera的简单使用

文章目录 一、相机操作相关示例1.摄像头操作内容使用示例2.摄像头信息展示使用示例3.摄像头设置切换、预览操作示例 二、相机使用个人操作理解1.相机类支持信息获取2.相机类曝光、焦点、图像处理控制信息获取3.快速启动相机设置(各个设备处于理想状态) 三…

地平线x5下运行yolo11s-seg模型

经过地瓜机器人工作人员(感谢吴超同学)的及时技术支持,整体比较顺利的跑起来了yolo11s-seg分割模型。将一些经验记录下来: 首先下载使用docker镜像: https://developer.d-robotics.cc/forumDetail/228559182180396619 …

linux驱动—注册总线分析

成功地在直接注册了一个总线,并且在总线目录下创建了属性文件,什么会在 sys/bus 目录下生成 mybus,目录以及对应的 devices,drivers, drivers_autoprobe,drivers_probe,uevent目录和属性呢? /sys,目录下的目录都对应一个kobject,…

如何成为录屏高手?2024年全新录屏工具梳理,你选对了吗?

如何录屏?录屏现在对我们来说太重要了,不管是做教学视频、演示文稿,还是录游戏或者教别人怎么用软件,都离不开录屏工具。但是市面上录屏软件一大堆,挑个适合自己的真不容易。今天,我就来给你介绍几款特别火…

知识图谱解码:AI 如何构建知识网络

大家好,我是Shelly,一个专注于输出AI工具和科技前沿内容的AI应用教练,体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具,拥抱AI时代的到来。 AI工具集1:大厂AI工具【共23款…

凸轮应用实例(带进料装置的伺服压机控制)

凸轮表凸轮关系曲线建立 博途S7-1500T PLC曲柄连杆模型仿真(电子凸轮完整配置+SCL源代码)-CSDN博客文章浏览阅读4次。这篇博客介绍了曲柄连杆机构的位移与曲柄转动角度关系,通过MATLAB进行计算和Simulink验证,并提供博途SCL源代码。文章链接提供了详细的曲柄连杆数学模型分析…