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

© 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


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

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

相关文章

JavaSE基础(二)—— 类型转换、运算符、键盘录入

目录 一、类型转换 1. 自动类型转换 1.1 自动类型转换的底层原理&#xff1a; ​1.2 自动类型转换的其他形式​编辑 2. 表达式的自动类型转换 3. 强制类型转换 3.1 强制类型转换底层原理​编辑 3.2 注意事项 二、运算符 1. 算数运算符 1.1 案例&#xff1a;数值拆分…

PCA主成成分分析例题详解

主成分分析是一种降维算法&#xff0c;它能将多个指标转换为少数几个主成分&#xff0c;这些主成分是原始变量的线性组合&#xff0c;且彼此之间互不相关&#xff0c;其能反映出原始数据的大部分信息 需要了解具体细节可看此视频&#x1f449;&#xff1a;什么是主成成分分析PC…

Linux安装MongoDB数据库,并内网穿透远程连接

文章目录 前言1. 配置Mongodb源2. 安装MongoDB3. 局域网连接测试4. 安装cpolar内网穿透5. 配置公网访问地址6. 公网远程连接7. 固定连接公网地址8. 使用固定地址连接 转载自Cpolar Lisa文章&#xff1a;Linux服务器安装部署MongoDB数据库 - 无公网IP远程连接「内网穿透」 前言 …

SpringBoot访问静态资源

SpringBoot项目中没有WebApp目录&#xff0c;只有src目录。在src/main/resources下面有static和templates两个文件夹。SpringBoot默认在static目录中存放静态资源&#xff0c;而templates中放动态页面。 static目录 SpringBoot通过/resources/static目录访问静态资源&#xff…

完成A轮融资,倍思如何发力场景化为品牌创造广阔未来?

凛冬过后的消费电子正在重新凝聚资本的目光。 近日&#xff0c;深圳市倍思科技有限公司宣布完成由深创投、中金资本联合领投&#xff0c;越秀产业基金、高榕资本跟投&#xff0c;金额数亿元人民币的A轮融资。 分析人士指出&#xff0c;消费电子的行业景气度在逐渐恢复&#x…

中国社科院与美国杜兰大学金融管理硕士项目——迎接立夏,切莫忘记自我成长

五月的风吹走了春季&#xff0c;今天我们迎来立夏。作为夏季的第一个节气&#xff0c;立夏常被人们当做万物蓄满能量&#xff0c;即将加速生长的标志。而在职的我们&#xff0c;也应该跟这世间万物一样&#xff0c;在季节交替之时沉淀自己、努力向上成长。在社科院与杜兰大学金…

“人工智能教父”从谷歌离职 称后悔发展AI,为世人敲响警钟?

在加入谷歌的第十年、深度学习迎来爆发式发展的当下&#xff0c;被誉为“人工智能教父”的Geoffrey Hinton已从谷歌离职&#xff0c;只是为了告诫人们AI已经变得很危险。 公开资料显示&#xff0c;Geoffrey Hinton在2013年加入谷歌&#xff0c;曾任副总裁&#xff0c;研究机器学…

成为数据分析师,需要具备哪些技能?

随着互联网的发展&#xff0c;数据分析师的特点越来越明显&#xff0c;对数据分析师综合素质的要求也较高。 1、较强的数据挖掘、信息整理、和逻辑分析能力 数据分析&#xff0c;也是数据分析师的一个方向。 制作日常性的经营报表&#xff0c;对公司或者行业KPI指标进行拆解…

Mysql索引(3):索引分类

1 索引分类 在MySQL数据库&#xff0c;将索引的具体类型主要分为以下几类&#xff1a;主键索引、唯一索引、常规索引、全文索引。 分类含义特点关键字主键索引针对于表中主键创建的索引 默认自动创建, 只能有一个 PRIMARY 唯一索引 避免同一个表中某数据列中的值重复可以有多…

【Android入门到项目实战-- 8.4】—— 如何解析JSON格式数据

目录 一、准备工作 二、使用JSONObject 三、使用GSON 比起XML&#xff0c;JSON的主要优势在于它的体积更小&#xff0c;在网络上传输的时候可以更省流量&#xff0c;但缺点是语义性较差&#xff0c;看起来不直观。 一、准备工作 还是使用前面文章的方法&#xff0c;在服务器…

每日学术速递4.29

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.LG 1.A Cookbook of Self-Supervised Learning 标题&#xff1a;自监督学习食谱 作者&#xff1a;Randall Balestriero, Mark Ibrahim, Vlad Sobal, Ari Morcos, Shashank Shekhar, Tom…

【黑马程序员 C++教程从0到1入门编程】【笔记8】 泛型编程——模板

https://www.bilibili.com/video/BV1et411b73Z?p167 C泛型编程是一种编程范式&#xff0c;它的核心思想是编写通用的代码&#xff0c;使得代码可以适用于多种不同的数据类型。 而模板是C中实现泛型编程的一种机制&#xff0c;它允许我们编写通用的代码模板&#xff0c;然后在需…

【Spring篇】IOC/DI注解开发

&#x1f353;系列专栏:Spring系列专栏 &#x1f349;个人主页:个人主页 目录 一、IOC/DI注解开发 1.注解开发定义bean 2.纯注解开发模式 1.思路分析 2.实现步骤 3.注解开发bean作用范围与生命周期管理 1.环境准备 2.Bean的作用范围 3.Bean的生命周期 4.注解开发依赖…

相当Python程序员,选择培训班还是自学?我结合自己的经历谈谈看法

前几天我写了一篇文章&#xff0c;分享了自己当上程序员的经历。然后&#xff0c;我收到了很多小伙伴的提问&#xff0c;都在问同一个问题&#xff0c;即如何选择报培训班还是自学。今天&#xff0c;我结合自己的个人经历&#xff0c;来谈一下个人的看法。 我认为这个问题的第…

Linux线程:死锁

1. 死锁 &#xff08;1&#xff09;概念 死锁&#xff08;DeadLock&#xff09;指两个或两个以上的进程或线程执行时&#xff0c;由于竞争临界资源而造成阻塞的现象&#xff1b;若不干涉&#xff0c;则无法推进下去。 &#xff08;2&#xff09;死锁的原因 ① 竞争临界资源…

06_Uboot顶层Makefile分析_前期所做内容

目录 U-Boot顶层Makefile分析 版本号 MAKEFLAGS变量 命令输出 静默输出 设置编译结果输出目录 代码检查 模块编译 获取主机架构和系统 设置目标架构、交叉编译器和配置文件 调用scripts/Kbuild.include 交叉编译工具变量设置 导出其他变量 U-Boot顶层Makefile分析…

TCP/IP网络编程(一)

TCP/IP网络编程读书笔记 第1章 理解网络编程和套接字1.1 理解网络编程和套接字1.1.1 构建打电话套接字1.1.2 编写 Hello World 套接字程序 1.2 基于Linux的文件操作1.2.1 底层访问和文件描述符1.2.2 打开文件1.2.3 关闭文件1.2.4 将数据写入文件1.2.5 读取文件中的数据1.2.6 文…

操作系统考试复习——第四章 存储器管理 4.1 4.2

存储器的层次结构&#xff1a; 存储器的多层结构&#xff1a; 存储器至少分为三级&#xff1a;CPU寄存器&#xff0c;主存和辅存。 但是一般分为6层为寄存器&#xff0c;高速缓存&#xff0c;主存储器&#xff0c;磁盘缓存&#xff0c;固定磁盘&#xff0c;可移动存储介质。…

( “ 图 “ 之 拓扑排序 ) 207. 课程表 ——【Leetcode每日一题】

❓207. 课程表 难度&#xff1a;中等 你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示如果要学习课…

自动驾驶中地图匹配定位技术总结

引言 汽车定位是让自动驾驶汽车知道自身确切位置的技术&#xff0c;在自动驾驶系统中担负着相当重要的职责。汽车定位涉及多种传感器类型和相关技术&#xff0c;主要可分为卫星定位、惯性导航定位、地图匹配定位以及多传感器融合定位几大类。其中地图匹配定位技术利用道路物理…