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

正则表达式(JAVA)

正则表达式(JAVA)

文章目录

  • 正则表达式(JAVA)
    • 用法
    • 字符类(只匹配一个字符)
    • 预定义字符(只匹配一个字符)
    • 数量词
    • 贪婪爬取
    • 符号
    • 捕获分组
      • 规则
      • 捕获分组
      • 符号
    • 非捕获分组
    • 案例
      • 忽略大小写

用法

  • 正则表达式在用于校验信息是否满足某些规则的时候,非常的好用

  • 文本中查找满足要求的内容

字符类(只匹配一个字符)

符号作用补充
[abc]只能是a,b或c匹配的一个字符只能是[]范围内的其中一个
[^abc]除了a,b,c之外的任何字符^符号类似
[a-zA-Z]a到z A到Z ,包括范围-作用是由…到… ,两个或多个范围之间不需要任何符号
[a-d[m-p]]a到d,或m到p两个[]之间嵌套表示字符为其中之一
[a-z&&[def]]a-z和def的交集&&为交集符号,匹配的字符是交集范围内容
[a-z&&[^bc]]a-z和非bc的交集和上一个基本一致
[a-z&&[ ^m-p]]a-z和除了m到p的交集存在运算优先级
  • 单个字符匹配JAVA方法: 单个字符.matches(正则表达式) 返回值是布尔类型

预定义字符(只匹配一个字符)

符号作用补充
.匹配 任何字符
\d匹配 一个数字
\D匹配 非数字
\s匹配 空白字符 ([\t\n\x0B\f\r])
\w匹配 [a-zA-Z_0-9] 英文,数字,下划线
\W匹配 [ ^\w] 一个非 英文,数字,下划线 字符
  • java中的\表示转义字符

  • java匹配预定义字符需要进行转移

  • PS: "a".matches("\\d")

数量词

  • 说明: X代表任意字符
  • 可以配合上面的内容实现多符号匹配
符号作用补充
X?X 出现 一次或0次
X*X 出现 零次或多次
X+X 出现 一次或多次
X{n}X 出现 正好n次{}代表出现的次数
X{n, }X 出现 至少n次
X{n,m}X 出现 至少n次但不超过m次
  • PS: "23dF.matches("[\\w&&[^_]]{4}")"
  • 解析: 字符在\\w去除_的条件下,出现4次,所以结果是true

贪婪爬取

  • 贪婪爬取: 在爬取数据的时候尽可能多得获取数据
    • 符号: +,*
    • PS: ab+
  • 非贪婪爬取: 在爬取数据时尽可能少的获取数据
    • 符号: +?,*?
    • PS:ab*?

符号

符号作用
``
&&相交
\转义字符
()分组
[]范围
{}次数

捕获分组

规则

  • 规则1: 从1开始
  • 规则2: 以左括号为基准,最左边的是第一组,其次是第二组,依次类推
  • PS: (\\d+(\\d+)\\d+)

捕获分组

  • 在某些情况下我们并不知道一个统一的标准,只知道一些要求时,需要使用捕获分组,也就是通过捕获某一组的数据,然后再使用
  • PS : 判断一个字符串的开始字符和结束字符是否一致
  • 举例: a123a ----> Java正则表达式==>(.).+\\1
  • 解释: 后面的\\1的意思是拿到第一组的数据复用,这里的1代指第一组
  • 理解: (.+)每一个.+直到获取的数据和原来不是同一类型会自动结束

符号

  • \\ : 内部
  • $: 外部

非捕获分组

符号作用
(?:正则)获取所有
(?=正则)获取前面部分
(?!正则)获取不是指定内容的前面部分
  • 含义: 分组之后不需要再用本组数据,仅仅是把数据括起来,括起来的表达式不在占用组号
  • 更多会使用第一个

案例

忽略大小写

  • PS: "(?i)字符"表示对后面的字符忽略大小写
  • System.*out*.println("aB".matches("(?i)ab"));---->true
  • (?i)后面的字符才忽略大小写

相关文章:

正则表达式(JAVA)

正则表达式(JAVA) 文章目录 正则表达式(JAVA)用法字符类(只匹配一个字符)预定义字符(只匹配一个字符)数量词贪婪爬取符号捕获分组规则捕获分组符号 非捕获分组案例忽略大小写 用法 正则表达式在用于校验信息是否满足某些规则的时候,非常的好用 在文本中查找满足要求的内容 字…...

264_BOOST中的Json库解析_BOOST_AUTO(itrpromodel, doc.FindMember(“productmodel“));

BOOST_AUTO(itrpromodel, doc.FindMember("productmodel"));if(itrpromodel != doc.MemberEnd()){BOOST_AUTO(iterd_url...

linux rpm 离线安装 nginx 自用,仅供参考

检查是否安装nginx ps -ef|grep nginx 检查rpm是否安装nginx rpm -qa|grep nginx 查看linux centos 发行版本 cat /etc/centos-release (查看其它发现版本 就把centos替换为别的 比如 红旗的 redflag ) 查看cpu信息 x86_64 lscpu 检查nginx所需依赖 …...

第十二章 YOLO的部署实战篇(上篇)

cuda教程目录 第一章 指针篇 第二章 CUDA原理篇 第三章 CUDA编译器环境配置篇 第四章 kernel函数基础篇 第五章 kernel索引(index)篇 第六章 kenel矩阵计算实战篇 第七章 kenel实战强化篇 第八章 CUDA内存应用与性能优化篇 第九章 CUDA原子(atomic)实战篇 第十章 CUDA流(strea…...

无涯教程-Android - List View函数

Android ListView 是垂直滚动列表中显示的视图,使用 Adapter 从列表(如数组或数据库)中获取内容的列表项会自动插入列表中。 适配器(Adapter)实际上是UI组件和将数据填充到UI组件中的数据源之间的桥梁,适配器保存数据并将数据发送到适配器视图&#xff0…...

stable diffusion实践操作-重绘

系列文章目录 本文专门开一节写局部重绘相关的内容,在看之前,可以同步关注: stable diffusion实践操作 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、局…...

C# 静态构造函数未执行 .net core框架

代码如下&#xff0c;在执行Encoding.GetEncoding(“gb2312”);方法后报错&#xff0c;说没有找到对应编码&#xff0c;经测试&#xff0c;发现是静态构造函数未执行。 public static class Encodings {/// <summary>/// 注册相关编码/// </summary>static Encodi…...

Java 复习笔记 - 学生管理系统篇

文章目录 学生管理系统一&#xff0c;需求部分需求分析初始菜单学生类添加功能删除功能修改功能查询功能 二&#xff0c;实现部分&#xff08;一&#xff09;初始化主界面&#xff08;二&#xff09;编写学生类&#xff08;三&#xff09;编写添加学生方法&#xff08;四&#…...

【UIPickerView-UIDatePicker-应用程序对象 Objective-C语言】

一、今天我们来学习三个东西 1.UIPickerView-UIDatePicker-应用程序对象 1.首先,来看数据选择控件 数据选择控件, 大家对这个数据选择控件,是怎么理解的, 1)数据选择控件,首先,是不是得有数据, 2)然后呢,你还得让用户能够选择, 3)最后,你还得是一个控件儿 那…...

仿京东 项目笔记1

目录 项目代码1. 项目配置2. 前端Vue核心3. 组件的显示与隐藏用v-if和v-show4. 路由传参4.1 路由跳转有几种方式&#xff1f;4.2 路由传参&#xff0c;参数有几种写法&#xff1f;4.3 路由传参相关面试题4.3.1 路由传递参数&#xff08;对象写法&#xff09;path是否可以结合pa…...

huggingface transformers库中LlamaForCausalLM

新手入门笔记。 LlamaForCausalLM 的使用示例&#xff0c;这应该是一段推理代码。 from transformers import AutoTokenizer, LlamaForCausalLMmodel LlamaForCausalLM.from_pretrained(PATH_TO_CONVERTED_WEIGHTS) tokenizer AutoTokenizer.from_pretrained(PATH_TO_CONVE…...

04-过滤器和拦截器有什么区别?【Java面试题总结】

过滤器和拦截器有什么区别&#xff1f; 运行顺序不同&#xff1a;过滤器是在 Servlet 容器接收到请求之后&#xff0c;但在 Servlet被调用之前运行的&#xff1b;而拦截器则是在Servlet 被调用之后&#xff0c;但在响应被发送到客户端之前运行的。 过滤器Filter 依赖于 Servle…...

如何用selenium或pyppeteer来启动多个AdsPower窗口

前言 本文是该专栏的第57篇,后面会持续分享python爬虫干货知识,记得关注。 关于selenium或pyppeteer来启动打开adspower浏览器的方法,笔者在本专栏前面有详细介绍过,感兴趣的同学可往前翻阅《如何用selenium或pyppeteer来链接并打开指纹浏览器AdsPower》,文章内容包含完整…...

京东店铺所有商品API接口数据

​​京东平台店铺所有商品数据接口是开放平台提供的一种API接口&#xff0c;通过调用API接口&#xff0c;开发者可以获取京东整店的商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、价格信息等详细信息 。 获取店铺所有商品接口API是一种用于获取电商平台上商…...

stm32之27.iic协议oled显示

屏幕如果无法点亮&#xff0c;需要用GPIO_OType_PP推挽输出&#xff0c;加并上拉电阻 1.显示字符串代码 2.显示图片代码&#xff08;unsigned强制转换&#xff08;char*&#xff09;&#xff09; 汉字显示...

paddle 1-高级

目录 为什么要精通深度学习的高级内容 高级内容包含哪些武器 1. 模型资源 2. 设计思想与二次研发 3. 工业部署 4. 飞桨全流程研发工具 5. 行业应用与项目案例 飞桨开源组件使用场景概览 框架和全流程工具 1. 模型训练组件 2. 模型部署组件 3. 其他全研发流程的辅助…...

ChatGPT帮助高职院校学生实现个性化自适应学习与对话式学习

一、学习层面&#xff1a;ChatGPT帮助高职院校学生实现个性化自适应学习与对话式学习 1.帮助高职院校学生实现个性化自适应学习 数字技术的飞速发展引起了教育界和学术界对高职院校学生个性化自适应学习的更多关注和支持&#xff0c;其运作机制依赖于人工智能等技术&#xff0…...

如何通过python写接口自动化脚本对一个需要调用第三方支付的报名流程进行测试?

对于需要调用第三方支付的报名流程进行接口自动化测试&#xff0c;可以通过以下步骤来编写Python代码&#xff1a; 1. 确认API需求 首先&#xff0c;需要确认报名流程的API需求和预期功能。这涉及到对业务需求的理解和API设计的分析。 2. 安装依赖库 在Python程序中&#x…...

将OSGB格式数据转换为3d tiles的格式

现有需求需要将已有的一些OSGB数据加载到CesiumJS中展示,但是CesiumJS本身不支持osbg格式的数据渲染所以我们需要将其转换一下,有两种格式可以转换一种是glTF格式,另一种是我们今天要介绍的3D Tiles格式 下载开源工具 在github上其实有好多这种工具,每个工具的用法大同小异,这…...

【易售小程序项目】小程序首页完善(滑到底部数据翻页、回到顶端、基于回溯算法的两列数据高宽比平衡)【后端基于若依管理系统开发】

文章目录 说明细节一&#xff1a;首页滑动到底部&#xff0c;需要查询下一页的商品界面预览页面实现 细节二&#xff1a;当页面滑动到下方&#xff0c;出现一个回到顶端的悬浮按钮细节三&#xff1a;商品分列说明优化前后效果对比使用回溯算法实现ControllerService回溯算法 优…...

COMSOL报错别慌!像程序员一样‘调试’你的多物理场模型(附分步屏蔽法)

COMSOL报错别慌&#xff01;像程序员一样‘调试’你的多物理场模型 面对COMSOL多物理场耦合模型报错时&#xff0c;许多工程师会陷入"哪里出错—如何修复"的循环焦虑。实际上&#xff0c;这类问题最有效的解决方式不是盲目修改参数&#xff0c;而是建立系统化的调试思…...

国际首都公报:湖北省放飞炬人国际控股集团国际总裁方达炬批准《湖北省放飞炬人国际控股集团国际军务涉军事法院规章》施行

国际首都公报&#xff1a;湖北省放飞炬人国际控股集团国际总裁方达炬批准《湖北省放飞炬人国际控股集团国际军务涉军事法院规章》施行...

【数字信号调制】基于matlab GMSK调制解调系统【含Matlab源码 15239期】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到海神之光博客之家&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49…...

AI写的论文如何降到20%以内?分场景教程+工具对比

AI写的论文如何降到20%以内&#xff1f;分场景教程工具对比 “我用DeepSeek写了大半篇论文&#xff0c;导师要求知网AI率必须低于20%&#xff0c;现在已经是52%&#xff0c;我该怎么办&#xff1f;” 这是毕业季最典型的求助问题之一。 不同的情况&#xff0c;处理方法不一样。…...

Python与Matlab双剑合璧:高效解析XJTU-SY轴承数据集实战指南

1. 为什么选择Python和Matlab处理XJTU-SY轴承数据 轴承故障诊断是工业设备健康管理的重要环节&#xff0c;而XJTU-SY轴承数据集作为国内知名的公开数据集&#xff0c;包含了多种工况下的全寿命周期振动数据。面对这样的工程数据集&#xff0c;Python和Matlab各有优势。我在实际…...

XMind快捷键背不会?试试我这套‘肌肉记忆’训练法,用这5个高频组合搞定80%的绘图

XMind快捷键肌肉记忆训练法&#xff1a;5个高频组合提升80%绘图效率 刚接触XMind时&#xff0c;我总在菜单栏里来回翻找功能按钮&#xff0c;每次画完一张思维导图手腕都隐隐发酸。直到发现产品总监小王能在十分钟内完成我半小时的工作量——他的双手几乎没离开过键盘&#xff…...

FreeRTOS内核探秘:双向链表如何玩转任务调度?从xListEnd到pxIndex全解析

FreeRTOS内核探秘&#xff1a;双向链表如何玩转任务调度&#xff1f;从xListEnd到pxIndex全解析 在嵌入式实时操作系统领域&#xff0c;任务调度效率直接决定了系统响应能力。FreeRTOS作为市场占有率最高的RTOS之一&#xff0c;其精巧的内核设计一直是开发者研究的焦点。想象一…...

tao-8k在AI应用开发中的价值:为LangChain+LlamaIndex提供高质量向量底座

tao-8k在AI应用开发中的价值&#xff1a;为LangChainLlamaIndex提供高质量向量底座 1. 为什么需要高质量的文本嵌入模型 在构建AI应用时&#xff0c;我们经常需要将文本转换为计算机能够理解的数值表示&#xff0c;这就是文本嵌入&#xff08;embedding&#xff09;的核心任务…...

lychee-rerank-mm与LangChain整合:构建智能文档检索系统

lychee-rerank-mm与LangChain整合&#xff1a;构建智能文档检索系统 1. 引言 想象一下这样的场景&#xff1a;你在一家律师事务所工作&#xff0c;每天需要从成千上万份法律文书中快速找到与当前案件相关的资料。传统的全文搜索只能帮你找到包含关键词的文档&#xff0c;但无…...

PasteMD助力程序员提效:代码片段/日志/报错信息一键转高亮Markdown

PasteMD助力程序员提效&#xff1a;代码片段/日志/报错信息一键转高亮Markdown 1. 引言&#xff1a;从杂乱文本到优雅文档的烦恼 你有没有过这样的经历&#xff1f;在技术讨论群里&#xff0c;同事发来一段报错日志&#xff0c;密密麻麻的堆栈信息挤在一起&#xff0c;看得人…...