正则表达式-基本元字符和语法规则

news2024/12/22 14:30:52

© Ptw-cwl CSDN


文章目录

    • 字符匹配
    • 元字符`.`
    • 元字符`[]`
    • 元字符`[^]`
    • 元字符`*`
    • 元字符`+`
    • 元字符`?`
    • 元字符`{}`
    • 元字符`|`
    • 元字符`()`
    • 元字符`^`
    • 元字符`$`
    • 元字符`\`
    • 元字符`\d`
    • 元字符`\w`
    • 元字符`\s`
    • 元字符`\b`
    • 元字符`\B`
    • 元字符`*?、+?、??、{n,m}?`
    • 元字符`(?=)、(?!)`
    • 元字符`(?:)`
    • 元字符`\1、\2`等
    • 元字符`^、$`
    • 元字符`()`
    • 元字符`(?:)`
    • 元字符`(?i)、(?s)、(?m)`
    • 元字符`\1、\2`等
    • 元字符`(?(condition)yes-pattern|no-pattern)`
    • 元字符`(?<name>pattern)、\k<name>`
    • 元字符`(?#comment)`
    • 元字符`(?i:pattern)`
    • 元字符`(?<=...)、(?<!...)`
    • 元字符`\A、\Z`

字符匹配

表示一个具体的字符。

示例:abc等。

元字符.

匹配任意单个字符,除了换行符。

示例:a. 会匹配字符串"abc"中的"ab"

元字符[]

匹配括号内的任意一个字符。

示例:[abc] 会匹配字符串"abc"中的任意一个字母。

元字符[^]

匹配除括号内的字符以外的任意一个字符。

示例:[^abc] 会匹配除了"a""b""c"之外的任何一个字符。

元字符*

匹配前面的字符出现0次或多次。

示例:a* 会匹配字符串"aaa"中的所有"a"

元字符+

匹配前面的字符出现1次或多次。

示例:a+ 会匹配字符串"aaa"中的所有"a",但不会匹配字符串"abc"

元字符?

匹配前面的字符出现0次或1次。

示例:a? 会匹配字符串"a"""(空字符串)。

元字符{}

匹配前面的字符出现指定的次数。

示例:a{3} 会匹配字符串"aaa",但不会匹配字符串"aa""aaaa"

元字符|

匹配前面或后面的字符。

示例:a|b 会匹配字符串"a""b"

元字符()

用来分组,可以将一系列字符视为一个整体来匹配。

示例:(abc)+ 会匹配字符串"abcabc",但不会匹配字符串"abcbca"

元字符^

匹配字符串的开头。

示例:^abc 会匹配以"abc"开头的字符串。

元字符$

匹配字符串的结尾。

示例:abc$ 会匹配以"abc"结尾的字符串。

元字符\

转义字符,可以用来匹配特殊字符本身。

示例:\. 会匹配字符串"."中的.

元字符\d

匹配数字,相当于[0-9]

示例:\d+ 会匹配字符串"123"中的所有数字。

元字符\w

匹配字母、数字和下划线,相当于[A-Za-z0-9_]

示例:\w+ 会匹配字符串"abc_123"中的所有字符。

元字符\s

匹配空白字符,包括空格、制表符、换行符等。

示例:\s+ 会匹配字符串" abc\t\n"中的所有空白字符。

元字符\b

匹配单词边界,即字与空格之间的位置。

示例:\bcat\b 会匹配字符串"a cat is a cat"中的两个"cat",但不会匹配字符串"scatter"中的"cat"

元字符\B

匹配非单词边界,即两个字之间的位置。

示例:\Bcat\B 会匹配字符串"scatter"中的"cat",但不会匹配字符串"a cat is a cat"中的两个"cat"

元字符*?、+?、??、{n,m}?

这些是非贪婪版本的量词元字符,表示尽可能少地匹配符合条件的字符。

示例:a*?b 会匹配字符串"aaab"中的"aab",而不是整个字符串。

元字符(?=)、(?!)

零宽度正预测先行断言和负预测先行断言,用于匹配某些位置前面或者不在某些位置前面的内容。

示例:a(?=b) 会匹配字符串"acb"中的"a",但不会匹配字符串"acc"中的"a"

元字符(?:)

非捕获型分组,不会被提取出来作为单独的匹配项。

示例:(?:abc)+ 会匹配字符串"abcabc",但不会将每个"abc"分别匹配出来。

元字符\1、\2

反向引用匹配前面已经匹配过的分组。

示例:([0-9])-\1 会匹配字符串"4-4",但不会匹配字符串"4-5"

元字符^、$

表示字符串的开头和结尾。

示例:^abc$ 会匹配仅包含"abc"的字符串,但不会匹配包含其他字符的字符串。

元字符()

分组元字符,在括号中的子模式匹配完成后,将匹配结果作为一个整体返回。

示例:(abc)+ 会匹配字符串"abcabc",但只会将两个"abc"作为一个匹配项返回。

元字符(?:)

非捕获型分组元字符,匹配括号内的子模式,但不会将匹配结果作为单独的匹配项返回。

示例:(?:abc)+ 会匹配字符串"abcabc",但不会将每个"abc"分别匹配出来。

元字符(?i)、(?s)、(?m)

用于设置匹配模式,分别表示忽略大小写、包含换行符、多行匹配。

示例:(?i)abc 会匹配字符串"ABC""Abc"等,不区分大小写。

元字符\1、\2

反向引用元字符,用于引用前面已经匹配到的分组。

示例:([0-9])-\1 会匹配字符串"4-4",但不会匹配字符串"4-5"

元字符(?(condition)yes-pattern|no-pattern)

条件匹配元字符,用于根据指定的条件选择匹配哪个模式。

示例:a(?(?=b)b|c) 会匹配字符串"ab""ac",根据"a"后面是否接着"b"来选择匹配哪个模式。

元字符(?<name>pattern)、\k<name>

命名分组元字符和反向引用分组名字。

示例:(?<mygroup>[0-9]+)\k<mygroup> 会匹配字符串"123123",因为前后两个"123"是同一个命名分组的匹配结果。

元字符(?#comment)

注释元字符,用于在正则表达式中添加注释。

示例:a(?#this is a comment)b 会匹配字符串"ab",但"(?#this is a comment)"不会参与匹配。

元字符(?i:pattern)

嵌入式选项,可以在某个子模式中设置匹配选项。

示例:(?i:abc) 等价于A|B|C

元字符(?<=...)、(?<!...)

零宽度正回顾后发断言和负回顾后发断言,用于匹配某些位置后面或者不在某些位置后面的内容。

示例:(?<=a)b 会匹配字符串"ab"中的"b",而不会匹配字符串"cb"中的"b"

元字符\A、\Z

匹配字符串的开头和结尾,与^$的区别是不会受换行符的影响。

示例:\Aabc\Z 只会匹配以"abc"组成的整个字符串,而不会匹配包含换行符的字符串。

Ptw-cwl


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

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

相关文章

【刷题之路Ⅱ】LeetCode 274275. H指数ⅠⅡ

【刷题之路Ⅱ】LeetCode 274&275. H指数Ⅰ&Ⅱ 一、题目描述二、解题1、方法1——排序1.1、思路分析1.2、代码实现1.3、升级到275题的二分法1.3.1、思路分析1.3.2、代码实现 2、方法2——计数排序2.1、思路分析2.2、代码实现 一、题目描述 原题连接&#xff1a; 274. H…

C语言专升本编程题复习

1.求100以内的素数 int main( ) { int i,j,count0;for(i1;i<100;i){for(j2;j<i;j){if(i%j0)break;}if(ij){count; printf("%d ",i);if(count%50)printf("\n");}} }2.求1000以内的完数 * 完数&#xff1a;等于其因子&#xff08;不含本身&…

【五一创作】SAP入门到放弃系列之批次确定配置

概念&#xff1a; 在后勤涉及物料移动或消耗流程中&#xff0c;从采购到生产到销售&#xff0c;涉及启用批次的物料&#xff0c;需要一次又一次地为出入库业务中的库存指定批次。如果企业的出库库批次管理有一定的管理要求&#xff0c;比如先进先出&#xff0c;就可以针对货物…

基于Java语言开发B/S架构实现的云HIS

一、云HIS系统框架简介 1、技术框架 &#xff08;1&#xff09;总体框架&#xff1a; SaaS应用&#xff0c;全浏览器访问 前后端分离&#xff0c;多服务协同 服务可拆分&#xff0c;功能易扩展 &#xff08;2&#xff09;技术细节&#xff1a; 前端&#xff1a;AngularNg…

级数可视化

泰勒级数 数学家们普遍偏爱多项式&#xff0c;如果评选一下高等数学里面最重要的公式&#xff0c;泰勒公式一定榜上有名&#xff0c;泰勒公式的核心思想就是把一个给定的任意函数&#xff0c;展开成多项式的形式&#xff0c;如果是有限项&#xff0c;就像作泰勒多项式&#xf…

深入了解云计算:发展历程、服务模型、未来趋势

开篇博主 bluetata 的观点&#xff1a;PaaS 服务必将是未来10年云计算权重最高的趋势&#xff08;05/02/2023 15:32&#xff09; 文章目录 一、前言二、认识了解云计算2.1 什么是云计算2.1.1 维基百科上的云计算定义2.1.2 NIST 标准云计算定义2.1.3 如果被面试如何解释云计算 2…

MYSQL-数据库管理(下)

查看数据库信息 show database 查看数据库中的表信息 use 数据库名 #切换到书库中 show tables show tables in mysql 显示数据表的结构&#xff08;字段&#xff09; describe user; Field:字段名称 type:数据类型 Null :是否允许为空 Key :主键 Type:数据类型 Null :是否…

武忠祥老师每日一题||不定积分基础训练(五)

∫ x f ′ ( x ) d x \int xf{}(x)\,{\rm d}x ∫xf′(x)dx ∫ x d f ( x ) \int x\,{\rm d}{f(x)} ∫xdf(x) x f ( x ) − ∫ f ( x ) d x xf(x)-\int f(x)\,{\rm d}x xf(x)−∫f(x)dx 由题知&#xff1a; f ( x ) ( ln ⁡ 2 x ) ′ 2 ln ⁡ x 1 x 2 ln ⁡ x x f(x)({…

宋爽:利用大数据解码遗传学的秘密 | 提升之路系列(七)

导读 为了发挥清华大学多学科优势&#xff0c;搭建跨学科交叉融合平台&#xff0c;创新跨学科交叉培养模式&#xff0c;培养具有大数据思维和应用创新的“π”型人才&#xff0c;由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项…

【Git】Gitee免密push(TencentCloudLinux)

前提&#xff1a; 我用的是腾讯云的Centos(Linux)服务器 我创建好了仓库 我配置过git 可以正常用密码push 以上自行解决 我们直接配置公钥解决免密push 1.在服务器上创建公钥 在用户根目录创建 公钥 邮箱写自己的 随意写 我写的是gitee绑定的邮箱 ssh-keygen -t ed25519 -C…

第四期 微信云开发之订阅消息以及定时发送(触发器)

前言 在我们开发过程中&#xff0c;很多场景都会使用到微信小程序订阅消息功能&#xff0c;例如打卡通知、订餐通知等等。但是在云开发过程中&#xff0c;没有后台的情况下&#xff0c;如何进行消息的定时通知呢&#xff1f;下面我将从小程序订阅消息到定时发送订阅消息进行一个…

改进YOLOv5:结合位置编码CoordConv,提升行人目标等预测能力 | 卷积加上坐标,从而使其具备了空间感知能力

CoordConv:给卷积加上坐标,从而使其具备了空间感知能力 核心代码CoordConv代码common代码:yolo注册yaml文件:测试众所周知,深度学习里的卷积运算是具有平移等变性的,这样可以在图像的不同位置共享统一的卷积核参数,但是这样卷积学习过程中是不能感知当前特征在图像中的坐标…

STM-32:SPI通信外设

目录 一、前言二、SPI功能框图三、SPI通信读写数据 一、前言 STM32的SPI外设可用作通讯的主机及从机&#xff0c;支持最高的SCK时钟频率为fpclk/2 (STM32F103型号的芯片默认 fpclk1为 36MHz&#xff0c;fpclk2为 72MHz)&#xff0c;完全支持 SPI协议的4种模式&#xff0c;数据…

RestTemplate 请求第三方网站数据 定时插入到数据库

目录 0 课程视频 1 RestTemplate-> 是Web Http 客户端请求 模板工具 1.1 使用RestTemplate -> 选择执行引擎 Http客户端请求工具 1.2 执行引擎 Http客户端请求工具 1.2.1 JDK HttpUrlConnection 1.2.2 Apache HttpClient 1.2.3 OkHttp 1.2 升级版 -> WebClien…

Android 12.0 Launcher3仿ios长按app图标实现抖动动画开始拖拽停止动画

1.概述 在12.0的系统rom定制化开发中,在对系统原生Launcher3的定制需求中,也有好多功能定制的,在ios等电子产品中 的一些好用的功能,也是可以被拿来借用的,所以在最近的产品开发需求中,需求要求模仿ios的 功能实现长按app图标实现抖动动画,接下来看如何分析该功能的实现…

Centos7快速安装Logstash 7.17.7并实现MySQL中数据导入Elasticsearch

可以通过以下命令在线安装 Logstash 7.17.7 sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch sudo rpm -ivh https://artifacts.elastic.co/downloads/logstash/logstash-7.17.7-x86_64.rpm安装完成后&#xff0c;需要添加环境变量 export PATH$PATH:…

ARM处理器的指令集(3)

ARM处理器的指令集 一、数据处理类指令 数据处理指令只能对寄存器的内容进行操作&#xff0c;而不能对内存中的数据进行操作&#xff0c;所以ARM数据处理指令均可以选择使用S后缀&#xff0c;以影响状态标志位。 影响状态标志位的命令&#xff1a; MOVS–>数据传送指令&am…

java servlet 农机租赁网站系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 java servlet 农机租赁网站系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助 系统采用 serlvetdaobean 模式开发 &#xff0c;系统具有完整的源代码和数 据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,M…

[架构之路-179]-《软考-系统分析师》-19- 系统可靠性分析与设计 -1- 故障模型、可靠性模型、可靠性分析

目录 前言&#xff1a; 1 9 . 1 系统可靠性概述 19.1.1 系统故障模型 1. 在信息系统中&#xff0c;故障或错误有如下儿种表现形式&#xff1a; 2. 故障的缘由 3. 故障模型 &#xff08;1&#xff09;逻辑电路级的故障 &#xff08;2&#xff09; 数据结构级的故障 &a…

【大数据Hadoop】HDFS3.3.1-Datanode-DataStorage的实现原理

DataStorage的实现原理 前言Storage类继承关系StorageInfoStorage.StorageStateStorage.StorageDirectory文件夹操作加锁/解锁操作存储状态恢复操作 StorageDataStorage 前言 Datanode 最重要的功能就是管理磁盘上存储的 HDFS 数据块。Datanode 将这个管理功能切分为两个部分&…