第 20 章 正则表达式¶
约 227 个字 9 行代码 1 张图片 预计阅读时间 1 分钟
文本模式匹配;基本正则 BRE vs 扩展正则 ERE。
20.1 元字符(常见)¶
| 元字符 | 含义 |
|---|---|
. |
任意单字符 |
* |
前一字符 0 次或多次 |
+ |
1 次或多次(ERE) |
? |
0 或 1 次(ERE) |
^ $ |
行首 / 行尾 |
[] |
字符类 |
[^] |
否定类 |
\| |
或(ERE) |
() |
分组(ERE) |
{n,m} |
重复次数(ERE) |
20.2 字符类¶
20.3 工具中的正则¶
| 工具 | 默认 | 扩展 |
|---|---|---|
| grep | BRE | grep -E |
| sed | BRE | sed -E |
| gawk | ERE | — |
bash [[ =~ ]] |
ERE | — |
20.4 实用示例¶
Bash
grep -E '^[0-9]{3}-[0-9]{4}$' phones.txt
grep -E '^(root|bin):' /etc/passwd
sed -E 's/([0-9]+)/NUM/g' file
20.5 开发常见模式¶
Text Only
^[a-zA-Z_][a-zA-Z0-9_]*$ # 标识符
^\d+\.\d+\.\d+$ # 简单版本号
\b(error|fatal|panic)\b # 日志级别(grep -E)
https?://[^\s]+ # URL 粗匹配
注意:贪婪 .* 用非贪婪或更精确类;优先 grep -E / ripgrep 做代码搜索。