语法 | 说明 | 表达式实例 | 匹配字符串 |
---|---|---|---|
. | 匹配任意字符,除了\n(换行符) | - | - |
\ | 转义字符 | - | - |
语法 | 说明 | 表达式实例 | 匹配字符串 |
---|---|---|---|
\d | 匹配任意数字,等价于 [0-9] | - | - |
\D | 匹配任意非数字 | - | - |
\s | 匹配任意空白字符,等价于 [\t\n\r\f]. | - | - |
\S | 匹配任意非空字符 | - | - |
\w | 匹配字母数字及下划线 | grep '\w' passwd | - |
\W | 匹配非字母数字及下划线 | - | - |
\z | 匹配字符串结束 | - | - |
\G | 匹配最后匹配完成的位置 | - | - |
\n | 匹配一个换行符 | - | - |
\t | 匹配一个制表符 | - | - |
\b | 代表着单词的开头或结尾,也就是单词的分界处 | - | - |
例如him,history,high等等。用hi来查找的话,这里边的hi也会被找出来。如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。
语法 | 说明 | 表达式实例 | 匹配字符串 |
---|---|---|---|
* | 匹配前一个字符 0 个或多个的表达式 | - | - |
+ | 匹配 1 个或多个的表达式 | - | - |
? | 匹配 0 个或 1 个由前面的正则表达式定义的片段,非贪婪方式 | - | - |
{n} | 精确匹配 n 个前面表达式 | - | - |
{n, m} | 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式 | - | - |
.* | 贪心算法,任意字符串 | - | - |
.*? | 非贪心算法 | - | - |
# grep 'roo*' passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
grep 'roo\+' passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
语法 | 说明 | 表达式实例 | 匹配字符串 |
---|---|---|---|
^ | 匹配字符串的开头 | ||
$ | 匹配字符串的末尾 | ||
\A | 匹配字符串开始 | - | - |
\Z | 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串 | - | - |
空行的表示:^$
语法 | 说明 | 表达式实例 | 匹配字符串 |
---|---|---|---|
[...] | 用来表示一组字符 | - | - |
( ) | 匹配括号内的表达式,也表示一个组 | - | - |
竖线 | 表示竖线两边任意匹配一个 | - | - |
数字字符:[0-9] 小写字符:[a-z] 大写字符:[A-Z] 反向字符[^0-9] 不包含
grep '[0-9]' passwd
grep '[123]' passwd
grep '[A-Z]' passwd