正则表达式完全指南:特殊字符与限定符解析
需积分: 10 83 浏览量
更新于2024-09-08
收藏 230KB PDF 举报
"正则表达式速记"
正则表达式是编程中用于处理文本的强大工具,它允许我们创建复杂的模式来匹配、查找、替换或提取字符串中的特定部分。正则表达式通常由一系列普通字符和特殊字符(元字符)组成,它们共同定义了一个搜索模式。以下是正则表达式的几个关键概念和特殊字符:
1. **特殊字符**:
- `$`:匹配输入字符串的结尾,设置`Multiline`属性后,也可以匹配`\n`或`\r`的末尾。
- `(` 和 `)`:标记子表达式的开始和结束,用于分组和捕获。
- `*`:匹配前面的子表达式零次或多次,等价于`{0,}`。
- `+`:匹配前面的子表达式一次或多次,等价于`{1,}`。
- `.`:匹配除换行符之外的任何单个字符。
- `[` 和 `]`:定义字符集,表示匹配其中任意一个字符。
- `?`:匹配前面的子表达式零次或一次,等价于`{0,1}`,也可用作非贪婪限定符。
- `\`:转义字符,用于使特殊字符变为普通字符或表示特殊含义。
- `^`:匹配输入字符串的开始,如果在字符集中,则表示排除该字符。
- `{}`:用于定义重复次数,如`{n}`表示重复n次,`{n,}`表示至少n次,`{n,m}`表示n到m次。
2. **非打印字符**:
- `\t`:制表符(\x09\cI)
- `\n`:换行符(\x0a\cJ)
- `\v`:垂直制表符(\x0b\cK)
- `\f`:换页符(\x0c\cL)
- `\r`:回车符(\x0d\cM)
- `\s`:匹配任何空白字符,包括空格、制表符、换页符等([\t\n\f\v\r])
- `\S`:匹配任何非空白字符([^\t\n\f\v\r])
3. **限定符**:
- `*`、`+` 和 `?` 都是贪婪的,意味着它们会尽可能多的匹配字符,但可以添加`?`使其变为非贪婪,进行最小匹配。
- `{n}`:匹配前面的子表达式n次。
- `{n,}`:匹配前面的子表达式至少n次。
- `{n,m}`:匹配前面的子表达式n到m次。
4. **定位符**:
- `\b`:匹配一个字边界,即单词和空格之间的位置。
- `\B`:非字边界匹配,表示不在字边界处匹配。
5. **反向引用**和**圆括号**:
- 圆括号可以用来捕获和存储子表达式,以便在表达式中引用,如`\1`、`\2`等,称为反向引用。
6. **其他特殊字符**:
- `|`:表示选择,匹配其前后任意一项。
掌握这些基础知识,可以帮助你在处理字符串时更有效地编写正则表达式,实现对文本的精确匹配和操作。正则表达式的强大之处在于它的灵活性和表达能力,能够处理各种复杂的文本模式,但同时也需要一定的学习和实践才能熟练运用。
2021-05-23 上传
2022-08-03 上传
2021-02-18 上传
2020-10-19 上传
点击了解资源详情
点击了解资源详情
2021-05-14 上传
点击了解资源详情
Peterial
- 粉丝: 0
- 资源: 4
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器