正则表达式(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组件中的数据源之间的桥梁,适配器保存数据并将数据发送到适配器视图࿰…...
stable diffusion实践操作-重绘
系列文章目录 本文专门开一节写局部重绘相关的内容,在看之前,可以同步关注: stable diffusion实践操作 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、局…...
C# 静态构造函数未执行 .net core框架
代码如下,在执行Encoding.GetEncoding(“gb2312”);方法后报错,说没有找到对应编码,经测试,发现是静态构造函数未执行。 public static class Encodings {/// <summary>/// 注册相关编码/// </summary>static Encodi…...
Java 复习笔记 - 学生管理系统篇
文章目录 学生管理系统一,需求部分需求分析初始菜单学生类添加功能删除功能修改功能查询功能 二,实现部分(一)初始化主界面(二)编写学生类(三)编写添加学生方法(四&#…...
【UIPickerView-UIDatePicker-应用程序对象 Objective-C语言】
一、今天我们来学习三个东西 1.UIPickerView-UIDatePicker-应用程序对象 1.首先,来看数据选择控件 数据选择控件, 大家对这个数据选择控件,是怎么理解的, 1)数据选择控件,首先,是不是得有数据, 2)然后呢,你还得让用户能够选择, 3)最后,你还得是一个控件儿 那…...
仿京东 项目笔记1
目录 项目代码1. 项目配置2. 前端Vue核心3. 组件的显示与隐藏用v-if和v-show4. 路由传参4.1 路由跳转有几种方式?4.2 路由传参,参数有几种写法?4.3 路由传参相关面试题4.3.1 路由传递参数(对象写法)path是否可以结合pa…...
huggingface transformers库中LlamaForCausalLM
新手入门笔记。 LlamaForCausalLM 的使用示例,这应该是一段推理代码。 from transformers import AutoTokenizer, LlamaForCausalLMmodel LlamaForCausalLM.from_pretrained(PATH_TO_CONVERTED_WEIGHTS) tokenizer AutoTokenizer.from_pretrained(PATH_TO_CONVE…...
04-过滤器和拦截器有什么区别?【Java面试题总结】
过滤器和拦截器有什么区别? 运行顺序不同:过滤器是在 Servlet 容器接收到请求之后,但在 Servlet被调用之前运行的;而拦截器则是在Servlet 被调用之后,但在响应被发送到客户端之前运行的。 过滤器Filter 依赖于 Servle…...
如何用selenium或pyppeteer来启动多个AdsPower窗口
前言 本文是该专栏的第57篇,后面会持续分享python爬虫干货知识,记得关注。 关于selenium或pyppeteer来启动打开adspower浏览器的方法,笔者在本专栏前面有详细介绍过,感兴趣的同学可往前翻阅《如何用selenium或pyppeteer来链接并打开指纹浏览器AdsPower》,文章内容包含完整…...
京东店铺所有商品API接口数据
京东平台店铺所有商品数据接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取京东整店的商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、价格信息等详细信息 。 获取店铺所有商品接口API是一种用于获取电商平台上商…...
stm32之27.iic协议oled显示
屏幕如果无法点亮,需要用GPIO_OType_PP推挽输出,加并上拉电阻 1.显示字符串代码 2.显示图片代码(unsigned强制转换(char*)) 汉字显示...
paddle 1-高级
目录 为什么要精通深度学习的高级内容 高级内容包含哪些武器 1. 模型资源 2. 设计思想与二次研发 3. 工业部署 4. 飞桨全流程研发工具 5. 行业应用与项目案例 飞桨开源组件使用场景概览 框架和全流程工具 1. 模型训练组件 2. 模型部署组件 3. 其他全研发流程的辅助…...
ChatGPT帮助高职院校学生实现个性化自适应学习与对话式学习
一、学习层面:ChatGPT帮助高职院校学生实现个性化自适应学习与对话式学习 1.帮助高职院校学生实现个性化自适应学习 数字技术的飞速发展引起了教育界和学术界对高职院校学生个性化自适应学习的更多关注和支持,其运作机制依赖于人工智能等技术࿰…...
如何通过python写接口自动化脚本对一个需要调用第三方支付的报名流程进行测试?
对于需要调用第三方支付的报名流程进行接口自动化测试,可以通过以下步骤来编写Python代码: 1. 确认API需求 首先,需要确认报名流程的API需求和预期功能。这涉及到对业务需求的理解和API设计的分析。 2. 安装依赖库 在Python程序中&#x…...
将OSGB格式数据转换为3d tiles的格式
现有需求需要将已有的一些OSGB数据加载到CesiumJS中展示,但是CesiumJS本身不支持osbg格式的数据渲染所以我们需要将其转换一下,有两种格式可以转换一种是glTF格式,另一种是我们今天要介绍的3D Tiles格式 下载开源工具 在github上其实有好多这种工具,每个工具的用法大同小异,这…...
【易售小程序项目】小程序首页完善(滑到底部数据翻页、回到顶端、基于回溯算法的两列数据高宽比平衡)【后端基于若依管理系统开发】
文章目录 说明细节一:首页滑动到底部,需要查询下一页的商品界面预览页面实现 细节二:当页面滑动到下方,出现一个回到顶端的悬浮按钮细节三:商品分列说明优化前后效果对比使用回溯算法实现ControllerService回溯算法 优…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
