正则表达式
什么是正则表达式?
正则表达式(Regular Expression,简称 regex 或 regexp)是一种描述字符串模式的语法。它用于文本搜索、匹配、替换等操作,是 Linux 文本处理的核心技能。
正则表达式类型
Linux 中有两种主要的正则表达式:
主要区别
基本元字符
字符匹配
字符类简写
POSIX 字符类
位置锚点
重复限定符
分组和捕获
交替(或)
常用模式示例
数字
字符串
常见格式
grep 中使用正则
实例
sed 中使用正则
实例
awk 中使用正则
实例
贪婪与非贪婪
默认情况下,正则表达式是贪婪的,会尽可能多地匹配。
常见技巧
匹配不包含某字符串的行
匹配多行
转义特殊字符
需要转义的特殊字符:. * + ? ^ $ [ ] { } ( ) | \
正则表达式测试工具
在线工具
- regex101.com
- regexr.com
命令行测试
常见错误
1. 忘记转义
2. BRE 和 ERE 混淆
3. 贪婪匹配导致意外结果
小结
本章介绍了 Linux 正则表达式:
- 元字符:
.、*、+、?、^、$等 - 字符类:
[]、[^]、POSIX 类 - 量词:
{n}、{n,}、{n,m} - 分组和引用:
()、\1 - 在各工具中使用:grep、sed、awk
正则表达式是一项需要练习的技能。从简单的模式开始,逐步掌握更复杂的用法。
上一章:文本处理工具
下一章:用户管理