正则表达式简介
1. 元字符 (grep, sed)
1.1. 句点元字符 .
通配元字符,匹配任意字符,除了换行符。
1.2. 反斜杠元字符 \\
将其后面的一个字符解释为普通字符而不是元字符。
1.3. 星号元字符 \*
其紧挨着的之前的匹配有 0+ 次匹配机会。
1.4. 位置元字符 ^
, $
^ 匹配字符串的最前面。
$ 匹配字符串的最后面。
1.5. 字符组元字符 [ ]
, 连字符元字符 -
, 补字号 ^
[]
匹配方括号内的左右字符。
\-
连字符元字符仅在字符组元字符内有意义,表示一段连续字符范围。
^
表示排除某些字符。
1.6. 范围字符串 \\{ \\}
\\{n,m\\}
匹配 n~m 次。
\\{n\\}
匹配 n 次。
\\{n,\\}
匹配 n+ 次。
1.7. 特殊字符类
[[:alpha:]]
匹配任意字母字符,大写或小写
[[:alnum:]]
匹配任意字母数字字符,0-9, a-z, A-Z
[[:blank:]]
匹配空格或制表符字符
[[:digit:]]
匹配任意数字字符,0-9
[[:lower:]]
匹配任意小写字母,a-z
[[:print:]]
匹配任意可打印字符
[[:punct:]]
匹配任意标点
[[:space:]]
匹配任意空白字符: 空格、制表符、NL、FF、VT、CR
[[:upper:]]
匹配任意大写字符,A-Z
2. 扩展元字符 (egrep, awk)
2.1. 加号元字符 +
其紧挨着的之前的匹配有 1+ 次匹配机会。
2.2. 问号元字符 ?
其紧挨着的之前的匹配有 0~1 次匹配机会。
2.3. 竖线元字符 |
r1|r2
匹配 r1 或 r2
2.4. 括号元字符 ( )
(r1)
匹配子字符串r1(常与 * + ? | 等连用)。
2.5. 范围元字符 { }
与上面的范围元字符类似。
3. 固定元字符 (grep)
3.1. \\< \\>
严格匹配一个词(后面必须直接跟一个空格或标点符号)。
参考:
- Linux Command Line and shell Scripting Bible, Richard Blum
- UNIX awk and sed PROGRAMMER'S INTERACTIVE WORKBOOK, Peter Patsis