跳转至

第 20 章 正则表达式

约 227 个字 9 行代码 1 张图片 预计阅读时间 1 分钟

文本模式匹配;基本正则 BRE vs 扩展正则 ERE。

20.1 元字符(常见)

元字符 含义
. 任意单字符
* 前一字符 0 次或多次
+ 1 次或多次(ERE)
? 0 或 1 次(ERE)
^ $ 行首 / 行尾
[] 字符类
[^] 否定类
\| 或(ERE)
() 分组(ERE)
{n,m} 重复次数(ERE)

20.2 字符类

Text Only
[abc]  [a-z]  [^0-9]
[[:digit:]]  [[:alpha:]]  [[:space:]]

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 做代码搜索。

评论