Shell正则表达式完全指南
46 浏览量
更新于2024-09-02
收藏 81KB PDF 举报
"这篇资源详细介绍了shell环境下的正则表达式,包括基本的正则表达式(BREs)、扩展的正则表达式(EREs)以及Perl的正则表达式(PREs)。同时,提供了多个shell常用的正则表达式模式,用于匹配不同类型的数字(如非负整数、正整数、负整数、整数、非负浮点数、正浮点数、负浮点数、浮点数)和特定格式的字符串(如英文字母组成、大写英文字母组成、小写英文字母组成、字母数字混合、下划线混合、邮箱地址、URL以及日期格式)"
在shell脚本编程中,正则表达式是强大的文本处理工具,用于匹配、查找、替换和验证字符串。以下是这些正则表达式的详细解释:
1. **基本的正则表达式(BREs)**:通常以`\`作为转义字符,使用`*`, `+`, `?`, `{}`等符号进行匹配。例如,`\d`代表数字。
2. **扩展的正则表达式(EREs)**:在BREs的基础上,去掉`\`作为转义字符的功能,直接使用特殊符号,通常通过`-E`选项启用。EREs通常更简洁易读。
3. **Perl的正则表达式(PREs)**:在shell中,通过`perl -pe`或`perl -ne`等命令使用,提供更多的功能和灵活性,如lookaround、backreferences等。
以下是一些常用的正则表达式模式及其用途:
- `^\d+$`:匹配非负整数(正整数 + 0),确保字符串仅包含数字且首位非零。
- `^[0-9]*[1-9][0-9]*$`:匹配正整数,确保至少有一个非零数字。
- `^((-\d+)|(0+))$`:匹配非正整数(负整数 + 0),允许前导负号或零。
- `^-[0-9]*[1-9][0-9]*$`:匹配负整数,确保有负号且后跟至少一个非零数字。
- `^-?\d+$`:匹配整数,包含正整数、负整数和零。
- `^\d+(\.\d+)?$`:匹配非负浮点数(正浮点数 + 0),允许小数部分。
- `^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$`:匹配正浮点数,确保至少有一位小数且非零。
- `^((-\d+(\.\d+)?)|(0+(\.0+)?))$`:匹配非正浮点数(负浮点数 + 0),允许前导负号或零小数。
- `^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$`:匹配负浮点数,确保有负号且至少有一位非零数字。
- `^(-?\d+)(\.\d+)?$`:匹配浮点数,包括正负整数和小数部分。
- `^[A-Za-z]+$`:匹配由26个英文字母组成的字符串。
- `^[A-Z]+$`:匹配由26个英文字母的大写组成的字符串。
- `^[a-z]+$`:匹配由26个英文字母的小写组成的字符串。
- `^[A-Za-z0-9]+$`:匹配由数字和26个英文字母组成的字符串。
- `^\w+$`:匹配由数字、26个英文字母或下划线组成的字符串。
- `^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$`:匹配符合标准格式的电子邮件地址。
- `^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$`:匹配URL地址。
- `/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/`:匹配"年-月-日"格式的日期。
掌握这些正则表达式模式,可以在shell脚本中进行高效的数据验证和处理。对于复杂的文本处理任务,了解不同类型的正则表达式和它们的用法至关重要。
2021-02-06 上传
2012-05-08 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2016-04-13 上传
2021-01-09 上传
2014-01-24 上传
2012-11-04 上传
weixin_38592847
- 粉丝: 8
- 资源: 874
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析