正则表达式Regex

是什么:一句话,正则表达式是对字符串执行模式匹配的技术。

从一段字符串中提取出所有英文单词、数字、字母和数字。

如果采用传统方法:将字符串的所有字符分割成单个,根据ASCII码判断,在一定范围内就是字母,每获得一个字母就拼接。

 String content = "根据PC-Meter1996年的调查,平均每个互联网用户每次访问的环球网的网站有5.6个," +
                "每次查看的网页20.8个,而平均阅读每一个网页所需要的时间大约1.4分钟,平均每次上网阅读环球网页的时间大约28分钟。" +
                "作为这样一种具有私人和公共的双重功用的传媒,互联网效用的实现从根本上还是依赖于参与者," +
                "也就是用户的增加。而这一特性又是和网络的性质是完全一致的。";
        //1.先创建一个Pattern对象
//        Pattern pattern = Pattern.compile("[a-zA-Z]");
//        Pattern pattern = Pattern.compile("[0-9]+");
        Pattern pattern = Pattern.compile ("[a-zA-Z]|[0-9]+");
        //2.创建一个匹配器对象matcher,这个matcher按照指定的pattern,到content中去匹配
        Matcher matcher = pattern.matcher(content);
        //3.循环匹配,find的返回值是true/false,即找到就返回true
        while(matcher.find()){
            System.out.println(matcher.group(0));
        }

元字符

1."?"匹配0或1个字符
"used?"可以同时匹配use和used
2."*"匹配0个或多个字符

"ab*c"
ac
abc
abbc
adc---匹配失败,a和c中间只能是0或多个b

3."+"匹配至少出现1次的字符

"ab+c"
ac----匹配失败,a和c中间必须要有c,且至少一个
abc
abbc

4."."匹配除了换行符以外的任何的字符

5."{}"字符频度限定
在这里插入图片描述

"ab{2,4}c"
ac----匹配失败,a和c中间必须要有c,且必须有2~4个
abc----匹配失败,a和c中间必须要有c,且必须有2~4个
abbc
"ab{3}c"
ac----匹配失败,a和c中间必须要有c,且必须3个
abbc----匹配失败,a和c中间必须要有c,且必须有3个
abbbc

6."()"内的字符视为一个整体去匹配

"(ab)+c"----------------ab视为一个整个,至少有1个ab,而后接c
abc----
ababc
abbbc-----匹配失败,"ab"要么接ab,要么接c

7."|"匹配符号左右任一字符

"a (cat|dog)"----------a后必须接空格,空格后必须接cat/dog之一
a cat
a dog
a bird-----匹配失败

8."[]"要匹配的字符只能取自[]之内

"[abc]+"--------任意的字符串,不要求连续,只要a,b,c都至少存在一次就匹配成功
abc
aabbcc
aabb-----匹配失败
"[a-z]"------匹配所有的小写英文字符
"[a-zA-Z]"------匹配所有的大写和小写英文字符
"[a-zA-Z0-9]"------匹配所有的大写和小写英文字符和数字

9.“^”和“[]”搭配使用,表示匹配排除了”[]"中的字符后剩余的所有字符
在这里插入图片描述
换行符也是符.
10."^“不与”[]"搭配使用,


通配符

元字符大多以反斜杠开头。
1.“\d”=“[0-9]”
2."\w"匹配所有的单词,数字,下划线

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++指针详解

定义: 指针是一个整数,一种存储内存地址的数字 内存就像一条线性的线,在这条街上的每一个房子都有一个号码和地址类似比喻成电脑,这条街上每一个房子的地址 是一个字节我们需要能够准确找到这些地址的方法,用来读写操…

中小型家具制造业使用制造管理MES系统应该注意什么?

随着人们生活水平变高,人们对家具的要求也在提高。为了应对越来越高的要求,企业开始寻找更有效的方法,其中就包括mes系统,那么中小型家具企业在使用mes的过程中应该注意什么呢? 第一,要考虑选择什么样的mes…

kubernetes Service 详解

写在前面:如有问题,以你为准, 目前24年应届生,各位大佬轻喷,部分资料与图片来自网络 内容较长,页面右上角目录方便跳转 Service 介绍 架构 在kubernetes中,Pod是应用程序的载体,…

【Azure 架构师学习笔记】- Azure Databricks (5) - Unity Catalog 简介

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (4) - 使用Azure Key Vault 管理ADB Secret 前言 DataBricks Unity Catalog(UC)是一个统一的对数据资产治理的解决方案…

[蓝桥杯学习] 树状数组的二分

要解决这个问题,插入和删除可以用STL实现,2操作如果用树状数组实现的话,将数的值作为树状数组的下标,即值域。 树状数组有两种操作,一个是更新某点的值,另一个是求区间和。 mid (lr)/2 ,求和 …

Vmware安装Windows11系统及下载MySQL步骤(超详细)

一、创建虚拟机 ①选择自定义 ②直接点击下一步 ③选择Windows 11 x64 ④命名虚拟机以及选择路径 ⑤新版本的虚拟机需要加密(密码需要8个字符以上) ⑥选择UEFI ⑦处理器配置(根据自己的需求) ⑧设置虚拟机的内存 ⑨选择不使用网络…

1878_emacs company backend的选择尝试

Grey 全部学习内容汇总: GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used. 1872_emacs company backend的选择尝试 从C语言开发的使用场景角度,通过测试尝试看看这个company的backend应该来如何配置。 主题由来介…

静态电压继电器 JY-11A 辅助电压110VDC 额定电压100VAC 安装方式 板前接线

JY-10系列集成电路电压继电器 JY-11A集成电路电压继电器 JY-12A集成电路电压继电器 JY-11C集成电路电压继电器 JY-11D集成电路电压继电器 JY-12B集成电路电压继电器 JY-12C集成电路电压继电器 JY-12D集成电路电压继电器 1概述 JY系列集成电路电压继电器用于发电机、变…

计算机网络 —— 物理层

物理层 2.1 物理层的基本概念 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流。 物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么 2.2 物理层下…

喝羊奶的好处,羊奶与健康的秘密揭示

喝羊奶的好处,羊奶与健康的秘密揭示 相信大家都听说过喝牛奶的好处,但是你听说过喝羊奶的好处吗?羊奶是一种营养丰富、味道醇香的乳制品,它不仅滋补身体,还具有许多独特的健康功效。今天,就让小编羊大师带…

MySQL基础笔记(4)DQL数据查询语句

DQL用于查找数据库中存放的记录~ 目录 一.语法 二.基础查询 1.查询多个字段 2.设置别名 3.去除重复记录 三.条件查询 1.基础语法 2.常见条件 四.分组查询 1.聚合函数 2.语法 五.排序查询 六.分页查询 附注:DQL执行顺序 1.编写顺序 2.执行顺序 ​​​…

[足式机器人]Part2 Dr. CAN学习笔记-动态系统建模与分析 Ch02-8 Bode Plot伯德图

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-动态系统建模与分析 Ch02-8 Bode Plot伯德图 Bode Plot 手绘技巧与应用

前端实现截图并下载

原理: 使用一个名为html2canvas的JavaScript库。这个库允许你将当前的HTML内容渲染到一个canvas元素上,然后将其转换为图像并进行下载。 你需要在项目中引入html2canvas库。你可以从官方网站(https://html2canvas.hertzen.com/)下载&#xf…

交通能见度监测站是什么

TH-NJD10交通能见度监测站是一种用于监测道路交通能见度的设备。它能实时监测道路上的能见度值,为驾驶员提供实时的路况信息,帮助他们在恶劣天气条件下安全驾驶。 交通能见度监测站通常由传感器、数据采集器和传输设备组成。传感器负责测量道路上的能见度…

K8S中SC、PV、PVC的理解

存储类(StorageClass)定义了持久卷声明(PersistentVolumeClaim)所需的属性和行为,而持久卷(PersistentVolume)是实际的存储资源,持久卷声明(PersistentVolumeClaim&#…

ISPM 十四五规划

指导思想 坚定不移贯彻创新、协调、绿色、开放、共享的新发展理念,坚持稳中求进工作总基调 2035展望 展望2035年,基本实现新型工业化、信息化、城镇化、农业现代化,建成现代化经济体系。 重大科技基础设施 深入实施制造强国战略 相关关键…

Gartner发布2024年SASE融合战略路线图

向云计算和远程工作的转变增加了 SASE 需求,以实现从任何设备的安全访问。安全和风险管理领导者必须将网络和安全融合到一两个明确合作的 SASE 供应商产品中,并淘汰遗留的边界系统。 主要发现 安全访问服务边缘 (SASE) 框架为混合劳动力以及设备、分支机…

2023年生成式AI全球使用报告

生成式人工智能工具正在迅速改变多个领域,从营销和新闻到教育和艺术。 这些工具使用算法从大量培训材料中获取新的文本、音频或图像。虽然 ChatGPT 和 Midjourney 之类的工具可以用来实现超出人类能力或想象力的艺术效果,但目前它们最常用于比人类更轻松…

HarmonyOS 编写副标题 解决 ubTitle 可能淘汰问题

目前 harmonyos 中 title属性目前用的还正常 但是ubTitle副标题 会提示我们 可能要淘汰了 虽然说 我们目前 强行用 还是可以生效 但可能 哪天版本更新移除了这个属性 代码就报错了 我们可以通过Builder 来写这个副标题 和 标题 Entry Component struct Index {build() {Row(…