正则表达式基本语法

article/2025/8/26 7:59:42

一、核心作用:

–文本的复杂处理

二、正则表达式的定义:

描述一个规则,通过这个规则可以匹配一类字符串

三、正则表达式的优势和用途:

优势:强大而灵活的文本处理工具
用途:大部分编程语言、数据库、文本编辑器、开发环境均支持正则表达式

四、测试工具:

RegexBuddy
在这里插入图片描述

五、正则表达式语法:

正则表达式语法(1):

转义字符:

\n换行符
\代表\本身
\t制表符
^、+、?代表这些字符本身

正则表达式语法(2):

标准字符集合

区分大小写,大写意思相反

\d任意一个数字(0-9)
\w任意一个字母、数字、下划线(A-Z、a-z、0-9、_)
\s包括空格、制表符、换行符等空白字符中的任意一个(\t、\n、 )
.小数点可以匹配任意一个字符(除换行符)如果要匹配包括换行符载内的所有字符,一般使用[\s\S]

正则表达式语法(3):

自定义字符集合

[]方括号匹配方式,能够匹配方括号中任意一个字符
[1234]匹配1或2或3或4
[^123]匹配除1、2、3之外的任意字符
[1-3]匹配1-3之间的任意一个字符
[^A-F0-3]]匹配除A-F、0-3之外的任意一个字符

注:(1)正则表达式的特殊符号,被包含到中括号中,则失去了特殊意义,除了 ^和-之外
(2)标准字符集合,除小数点外,如果被包含于中括号,自定义字符集合将包含该集合

正则表达式语法(4):

量词

修饰匹配次数的特殊符号

{n}表达式重复n次
{m,n}表达式至少重复m次,最多重复n次
{m,}表达式至少重复m次
匹配表达式0次或者一次,相当于{0,1}
+表达式至少出现一次,相当于{1,}
*表达式不出现或者出现任意次,相当于{0,}

匹配次数中的贪婪模式(匹配字符越多越好,默认) 匹配次数中的非贪婪模式(匹配字符越少越好,修饰匹配次数的特殊符号后加一个?修饰)

正则表达式语法(5):

字符边界
匹配的不是字符而是位置,符合某种条件的位置

^与字符串开始的位置匹配
$与字符串结束的位置匹配
\b匹配一个单词边界

\b匹配这样一个位置:前面的字符和后面的字符不全是\w

正则表达式语法(6):

选择符和分组

|分支结构左右两边表达式“或”关系,匹配左边或右边
()捕获组(1)在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰 (2)取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到 (3)每一对括号会分配一个编号,使用()的捕获根据左括号的顺序从1开始自动编号。捕获元素编号为零的第一个捕获是由整个正则表达式模式匹配的问题
(?:)非捕获组一些表达式中,不得不使用(),但又不需要保存()中子表达式匹配的内容,这时可以用非捕获组来抵消使用()带来的副作用

反向引用(\nnn) 每一对()会分配一个编号,使用()的捕获根据左括号的顺序从1开始编号 通过反向引用,可以对分组已捕获的字符串进行引用

正则表达式语法(7):

预搜索(零宽断言)
只进行子表达式的匹配,匹配内容不计入最终匹配结果,是零宽度
这个位置应该符合某个条件。判断当前位置的前后字符,是否符合指定的条件,但不匹配前后的字符,是位置绝对的
正则表达式匹配过程中,如果子表达式是占有字符的;如果子表达式匹配的仅仅是位置,那么就认为这个子表达式是占有字符的,如果子表达式匹配的仅仅是位置,或者匹配的内容并不保存到最终的匹配结果中,那么就认为这个子表达式是零宽度的。占有字符还说零宽度,是针对匹配的内容是否保存到最终匹配结果中而言的

(?=exp)断言自身出现的位置后面能匹配到exp
(!=exp)断言自身出现的位置后面不能匹配到exp
(?<=exp)断言自身出现的位置前面能匹配到exp
(?<!exp)断言自身出现的位置前面不能匹配到exp

六、正则表达式练习:

电话号码的验证:

要求:

  1. 电话号码由数字和"-"构成
  2. 电话号码为7到8位
  3. 如果电话号码中包含有区号,那么区号为三位或四位, 首位是0.
  4. 区号用"-"和其他部分隔开
  5. 移动电话号码为11位
  6. 11位移动电话号码的第一位和第二位为"13“,”15”,”18

0\d{2,3}-\d{7,8}|1[35789]+\d{9}

在这里插入图片描述

电子邮件地址验证 :

要求’’

  1. 用户名:字母、数字、中划线、下划线组成。
  2. @
  3. 网址:字母、数字组成。
  4. 小数点:.
  5. 组织域名:2-4位字母组成。 – 不区分大小

\w+@[a-zA-z0-9]+(.[A-Za-z]{2,4}){1,2}

在这里插入图片描述

七、常用的正则表达式:

在这里插入图片描述

感谢阅读,水平有限,如有错漏,还请不吝赐教


http://chatgpt.dhexx.cn/article/VnaHW0r4.shtml

相关文章

正则表达式的语法规则

一、行定位符&#xff08;^和$&#xff09; 行定位符就是用来描述字串的边界。“^”表示行的开始&#xff1b;“$”表示行的结尾。如&#xff1a; ^tm : 该表达式表示要匹配字串tm的开始位置是行头&#xff0c;如tm equal Tomorrow Moon就可以匹配 tm$ : 该表达式表示要匹配字串…

正则表达式常用语法解析

正则表达式常用语法解析 什么是正则表达式正则表达式之元字符匹配位置的元字符 ^、$、/b匹配字符的元字符 .、\w、\W、\s、\S、\d、\D 正则表达式之文字匹配字符类字符转义反义 正则表达式之限定符正则表达式之字符的运算替换分组反向引用零宽度断言负向零宽度断言优先级顺序 什…

Python正则表达式大全

定义&#xff1a;正则表达式是对字符串&#xff08;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff09;和特殊字符&#xff08;称为“元字符”&#xff09;&#xff09;操作的一种逻辑公式&#xff0c;就是用事先定义好的一些特定字符、及这些特定字符的组…

JS正则表达式语法大全(非常详细)

前面几节讲解了如何在 JavaScript 中使用正则表达式&#xff0c;以及如何执行匹配&#xff0c;本节就来讲一下正则表达式的具体语法。 正则表达式是一种通用的工具&#xff0c;在 JavaScript、PHP、Java、Python、C 等几乎所有的编程语言中都能使用&#xff1b;但是&#xff0c…

正则表达式语法及例子

正则表达式的语法规则 一、行定位符&#xff08;^和$&#xff09; 行定位符就是用来描述字串的边界。“^”表示行的开始&#xff1b;“$”表示行的结尾。如&#xff1a; ^tm : 该表达式表示要匹配字串tm的开始位置是行头&#xff0c;如tm equal Tomorrow Moon就可以匹配 tm$ :…

最全的常用正则表达式大全

一、校验数字的表达式 1 数字&#xff1a;^[0-9]*$ 2 n位的数字&#xff1a;^\d{n}$ 3 至少n位的数字&#xff1a;^\d{n,}$ 4 m-n位的数字&#xff1a;^\d{m,n}$ 5 零和非零开头的数字&#xff1a;^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字&#xff1a;^([1-9][…

正则表达式的语法

正则表达式语法简介  正则表达式是独立于任何语言的&#xff0c;虽然不同的 语言中其语法略有不同。  正则表达式的语法可以分为 • 特殊字符 • 边界匹配符 • 逻辑操作符 • 量词等  这些基本的语法规则合成使用&#xff0c;共同构成了正 则表达式强大的表示和匹配功能…

正则表达式基础语法大全

正则表达式基础语法 1.普通字符&#xff1a; 字母、数字、汉子、下划线、以及没有特殊定义的标点符号&#xff0c;都是“普通字符”。表达式中的普通字符&#xff0c;在匹配一个字符串的时候&#xff0c;匹配与之相同的一个字符。 2.简单的转义字符&#xff1a; 3.标准字符集…

最全常用正则表达式大全

一、校验数字的表达式 1. 数字&#xff1a;^[0-9]*$ 2. n位的数字&#xff1a;^\d{n}$ 3. 至少n位的数字&#xff1a;^\d{n,}$ 4. m-n位的数字&#xff1a;^\d{m,n}$ 5. 零和非零开头的数字&#xff1a;^(0|[1-9][0-9]*)$ 6. 非零开头的最多带两位小数的数字&#xff1a;^…

正则表达式的语法汇总

文章目录 1.正则表达式的基本语法1.1两个特殊符号 ^ 和 $^ 正则表达式的起始符$ 正则表达式的结束符^$ 结合使用不使用 ^$ 1.2 出现次数的表示符号 * &#xff1f;* 表示出现 0次 或者 至少1次 表示出现 至少1次? 表示出现 0次 或者 1次 1.3 指定出现次数的范围 {}使用{m,n} …

Java 集合List转 Map 和Map转List的方法总结(举例说明!)

最近遇到了一个场景是&#xff0c;要将从数据库中查出的List<bean>转换为List<map>然后再取map中的value&#xff0c;最后把所有的value写到Excel中。由于这个bean的属性太多了&#xff0c;我最开始没有采用list转map的方式取获取value&#xff0c;而是在for循环中…

Java8:list转Map

小故事 最近项目中&#xff0c;因为业务需要&#xff0c;我使用了for循环进行List转Map&#xff0c;项目经理看到了&#xff0c;深深的”鄙视“了我&#xff0c;说你怎么写这么古老的写法&#xff0c;一点不优雅。于是我就想到了Java8的新特性&#xff0c;使用stream流进行操作…

Java8 Stream(11)List转Map

一、前言 对于聚合统计可以参考下面博客。 Java8 Stream&#xff08;12&#xff09;Collectors 分组统计 详解 开发中&#xff0c;List转Map是非常常见的操作&#xff0c;例如&#xff1a; List<T> 转 Map<String, T>List<T> 转 Map<String, List<T&…

APP移动测试用例总结,总有你要用到的

目录 前言 一、首先是测试资源确认及准备 二、测试用例的设计与评审 三、UI测试 四、功能测试 五、中断测试 六、兼容性及适配测试 七、性能测试 八、稳定性测试 九、测试分析及测试报告输出 十、移动端测试用例的实践经验 总结 重点&#xff1a;配套学习资料和…

设计水杯,门锁的测试用例

测试用例公式&#xff1a; 功能测试 界面测试 性能测试 兼容性测试 易用性测试 安全测试 一般用脑图或者Excel来编写测试用例 百度脑图 - 便捷的思维工具 水杯的测试用例&#xff1a; 门锁的测试用例&#xff1a; 测试用例越多越好吗&…

APP 测试用例(大部分 APP 通用)

APP 测试用例 根据 场景设计法 来设计测试用例 安装与卸载权限设置软件更新登录与注册网络环境运行日历控件异常测试兼容性测试

在线音乐播放器测试用例

登录功能测试用例 当用户输入正确的用户名和密码时,方可登录成功,否则,会给出相应得提示。 上传音乐测试用例 用户选择上传的音乐后缀是.mp3时,才能上传成功。 查询音乐测试用例 查询音乐支持指定名称查询和模糊匹配查询。 安全测试 安全测试作为系统测试的主要部分&#xff0c…

APP移动测试用例总结

目录 前言 一、首先是测试资源确认及准备 二、测试用例的设计与评审 三、UI测试 四、功能测试 五、中断测试 六、兼容性及适配测试 七、性能测试 八、稳定性测试 九、测试分析及测试报告输出 十、移动端测试用例的实践经验 结语 前言 在我们的测试工作中&#xff0c;对于某…