当前位置:首页 > 开发教程 > 正文内容

常用正则表达式汇总,正则表达式实战技巧与汇总

wzgly4周前 (07-31)开发教程9
正则表达式是用于处理字符串的强大工具,以下是一些常用正则表达式的汇总:,1. 字符匹配:[abc] 匹配任意一个字符(a、b或c)。,2. 范围匹配:[a-z] 匹配任意小写字母。,3. 负向匹配:[^abc] 匹配除a、b、c之外的任意字符。,4. 数量匹配:a* 匹配任意数量的a(包括0个)。,5. 选择匹配:a|b 匹配a或b。,6. 定位匹配:^a 匹配字符串开头为a。,7. 反向定位:a$ 匹配字符串结尾为a。,8. 贪婪匹配:.* 匹配任意数量的任意字符。,9. 非贪婪匹配:.*? 匹配尽可能少的任意字符。,10. 分组匹配:(a) 将a作为一个整体进行匹配。,这些正则表达式可以帮助您高效地进行字符串匹配、查找和替换操作。

嗨,我最近在学习正则表达式,但是感觉有点乱,不知道哪些是常用的,哪些是必须掌握的,你能帮我整理一下常用的正则表达式汇总吗?我想快速提升我的技能。

一:数字和字母匹配

匹配任意数字:

常用正则表达式汇总
  • 正则表达式: \d
  • 解释: \d 匹配任何单个数字,相当于 [0-9]

匹配指定范围的数字:

  • 正则表达式: [0-9]{3,5}\d{3,5}
  • 解释: {3,5} 表示匹配前面的字符(在这里是数字)至少3次,但不超过5次。

匹配数字和字母的组合:

  • 正则表达式: [A-Za-z0-9]+
  • 解释: [A-Za-z0-9] 匹配任何字母或数字, 表示匹配一个或多个这样的字符。

二:特殊字符匹配

匹配中文字符:

  • 正则表达式: [\u4e00-\u9fa5]+
  • 解释: [\u4e00-\u9fa5] 匹配任何中文字符。

匹配英文中的空格:

  • 正则表达式: \s
  • 解释: \s 匹配任何空白字符,包括空格、制表符、换行符等。

匹配邮箱地址:

常用正则表达式汇总
  • 正则表达式: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
  • 解释: 这个表达式匹配常见的邮箱地址格式。

三:字符串模式匹配

匹配以特定字符开头的字符串:

  • 正则表达式: ^abc.*
  • 解释: ^ 表示匹配字符串的开始,abc 是指定的开头字符, 表示匹配任意字符(除了换行符)任意次。

匹配以特定字符结尾的字符串:

  • 正则表达式: .*abc$
  • 解释: 表示匹配字符串的结束,abc 是指定的结尾字符。

匹配包含特定子串的字符串:

  • 正则表达式: .*\bexample\b.*
  • 解释: \b 表示单词边界,example 是要匹配的子串。

四:正则表达式进阶

使用分组和捕获:

  • 正则表达式: (abc|def)\d+
  • 解释: (abc|def) 表示匹配 abcdef\d+ 表示匹配一个或多个数字,分组中的内容可以用 $1$2 等引用。

使用量词和否定:

常用正则表达式汇总
  • 正则表达式: [a-z]*[A-Z]+
  • 解释: [a-z]* 表示匹配零个或多个小写字母,[A-Z]+ 表示匹配一个或多个大写字母。

使用预定义字符集:

  • 正则表达式: \d{3}-\d{2}-\d{4}
  • 解释: \d 匹配数字,{3}{2}{4} 表示匹配前面的字符指定次数, 是字面量字符。

五:正则表达式应用场景

数据验证:

  • 应用场景: 验证用户输入的邮箱地址、电话号码等是否符合格式要求。

文本搜索和替换:

  • 应用场景: 在文本编辑器或编程语言中搜索和替换特定的文本模式。

数据清洗:

  • 应用场景: 从大量数据中提取或删除不需要的信息。

通过以上常用正则表达式的汇总,相信你已经对正则表达式有了更深入的了解,掌握这些正则表达式,将大大提高你在数据处理和文本处理方面的效率。

其他相关扩展阅读资料参考文献:

正则表达式是处理文本数据的利器,广泛应用于数据清洗、格式校验、字符串提取等场景,掌握常用正则表达式能显著提升开发效率,本文从基础语法常用场景高级技巧三个方向展开,结合具体案例深入解析。

基础语法:构建正则表达式的核心要素
1 字符匹配
正则表达式通过字符集匹配特定内容,如[a-zA-Z0-9]匹配字母和数字,[^\s]匹配非空格字符。注意:使用^和可限定匹配范围,如^\d{3}-\d{4}-\d{4}$匹配固定格式的身份证号。
2 量词控制匹配次数
表示匹配0次或多次,表示至少1次,表示0或1次。例如[a-z]+匹配连续字母,\.com匹配域名后缀。注意:贪婪匹配可能导致误判,需用转为非贪婪模式。
3 分组与捕获
通过将多个字符组合为一个单元,如(http|https)://提取协议类型。捕获组可后续引用,如(\d{3})-(\d{4})提取电话号码的区号和号码部分。注意:非捕获组适用于仅分组不提取的场景。

常用场景:正则表达式的实际应用
1 验证邮箱格式
标准邮箱正则为^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$注意:需区分@符号和域名分隔符,避免匹配如user@domain的无效格式。
2 提取URL链接
匹配https?://开头的URL,如https?://\S+注意\.com需转义,防止与普通点号混淆。扩展:可结合分组提取协议、域名和路径,如(?:https?://)?([^/\s]+)
3 格式化文本
用正则替换格式,如将"2023-10-05"转换为"2023年10月05日",正则为(\d{4})-(\d{2})-(\d{2}),替换为\1年\2月\3日注意:替换时需使用反向引用\1\2等。

高级技巧:提升正则表达式效率与灵活性
1 正向预查与反向引用
正向预查用于匹配前缀,如(?=\d{3})确保数字前有三位数。反向引用\1可复用已匹配内容,如(\d{3})-\1匹配重复三位数的字符串。
2 模式重用与命名分组
通过(?<name>...)定义命名分组,如(?<year>\d{4})提取年份。注意:命名分组提升可读性,尤其在复杂模式中。
3 多行匹配与修饰符
使用m修饰符使^和匹配每行开头结尾,如^abc在多行文本中仅匹配第一行。注意s修饰符可让匹配换行符,适用于处理多行字符串。

常见陷阱:避免正则表达式误用
1 特殊字符需转义
如、、等符号需用\*\+等转义,否则会被视为量词。例如:匹配号需写成\*
2 贪婪匹配导致问题
默认贪婪模式可能匹配过长内容,如<.*>会匹配整个HTML标签。解决:添加转为非贪婪模式,如<.*?>
3 忽略编码与边界条件
正则表达式对编码敏感,如中文字符需用[\u4e00-\u9fa5]匹配。注意:避免因边界条件缺失导致误匹配,如^abc$确保整串匹配。


正则表达式的核心在于精准匹配与灵活应用,掌握基础语法、熟悉常用场景、善用高级技巧,能有效应对复杂文本处理需求,规避常见陷阱可避免因小失大。建议:多通过实际案例练习,逐步积累经验,才能真正发挥正则表达式的强大功能。

扫描二维码推送至手机访问。

版权声明:本文由码界编程网发布,如需转载请注明出处。

本文链接:http://b2b.dropc.cn/kfjc/17693.html

分享给朋友:

“常用正则表达式汇总,正则表达式实战技巧与汇总” 的相关文章

随机数生成器在线版,在线随机数生成器,一键获取随机数字

随机数生成器在线版,在线随机数生成器,一键获取随机数字

本在线随机数生成器是一款便捷的数字随机生成工具,用户可自定义生成范围、数量及类型(整数、浮点数等),支持一键复制和导出功能,广泛应用于抽奖、密码生成、数据分析等领域,操作简单,无需安装,即点即用。 大家好,我最近在做一个项目,需要用到随机数生成器,但是我不太懂编程,所以想找一个在线版的随机数生成器...

程序员招聘求职的网站,程序员专属招聘求职平台

程序员招聘求职的网站,程序员专属招聘求职平台

这是一个专门针对程序员招聘和求职的网站,该平台汇集了丰富的职位信息,包括软件开发、系统架构、前端开发等多个领域,用户可以在这里发布简历、搜索职位、参与在线面试,同时也有企业招聘团队发布招聘需求,提供便捷的线上交流与匹配服务,助力程序员找到理想的工作机会。你的职业加速器 真实用户解答: 大家好,我...

单片机c语言程序设计实训100例 pdf,单片机C语言程序设计实训精选100例

单片机c语言程序设计实训100例 pdf,单片机C语言程序设计实训精选100例

《单片机C语言程序设计实训100例》是一本专注于单片机C语言编程实践指导的书籍,本书通过100个精心设计的实例,地讲解了单片机编程的基础知识和技能,涵盖数据存储、I/O接口、定时器、中断系统等多个方面,书中实例丰富、步骤详尽,旨在帮助读者快速掌握单片机C语言编程,提升实践能力。 您好,我最近在准备...

学c语言要多少钱,C语言学习费用解析

学c语言要多少钱,C语言学习费用解析

学习C语言的费用因学习途径而异,若通过线上平台自学,费用可能在几十元到几百元不等,包括购买教材或付费课程,若参加培训班,费用则可能从几百元到几千元不等,具体取决于课程内容和时长,还需考虑个人投入的时间与精力。 大家好,我是刚刚入门C语言编程的小白,最近很多人问我学C语言要多少钱,这个问题其实挺复杂...

oracle数据库启动和关闭命令,Oracle数据库启动与关闭操作指南

oracle数据库启动和关闭命令,Oracle数据库启动与关闭操作指南

Oracle数据库的启动和关闭命令如下:,1. 启动数据库:, - 使用SQL*Plus工具,以系统权限登录。, - 输入命令:STARTUP, - 按照提示完成启动过程。,2. 关闭数据库:, - 使用SQL*Plus工具,以系统权限登录。, - 输入命令:SHUTDOWN,...

initstack函数,深入解析,initstack函数的初始化技巧与应用

initstack函数,深入解析,initstack函数的初始化技巧与应用

initstack函数通常用于初始化一个栈结构,该函数负责创建一个栈,并设置其初始状态,包括可能的最大容量、栈顶指针等,具体实现可能包括分配内存空间、设置栈顶指针为空或指向栈底、初始化栈的大小等,此函数是栈操作的基础,确保在执行其他栈操作(如压栈、弹栈等)前,栈已正确配置。 嗨,我最近在写一个栈的...