@breakerthb
2019-02-16T08:58:04.000000Z
字数 1018
阅读 1530
Linux
语系:LANG=C
特殊符号:
匹配模式 | 说明 | 举例 |
---|---|---|
[:alnum:] | 字母与数字 | 0-9,A-Z,a-z |
[:alpha:] | 字母 | A-Z,a-z |
[:blank:] | 空格 和 [Tab] | |
[:cntrl:] | 键盘上控制按键:CR, LF, Tab, Del | ASCII控制字符 |
[:digit:] | 数字 | 0-9 |
[:graph:] | 除了空格符(空格和Tab)以外的全部按键 | |
[:lower:] | 小写字母 | a-z |
[:print:] | 可打印字符 | 代表任何可以被打印的字符 |
[:punct:] | 标点符号字符 | 标点符号:“‘?!;:# $ |
[:upper:] | 大写字母 | A-Z |
[:space:] | 任何产生空白的字符 | 空格、Tab、CR |
[:xdigit:] | 十六进制数 | 0-9,A-F,a-f |
字符 | 说明 | 用法 | 举例 |
---|---|---|---|
|忽略字符 | 忽略正则表达式中特殊字符的原有含义 | ||
^ | 行首 | ^word word在行首 |
grep -n '^#' test.txt 查找行首为# |
$ | 行尾 | word$ word在行尾 |
grep -n '!$' test.txt 查找!结尾 |
\< | 从匹配正则表达式的行开始 | ||
> | 到匹配正则表达式的行结束 | ||
. | 一个任意字符 | a.b 结果是3个字符 a..b 结果是4个字符 |
|
\|转义字符 | |||
* | 重复 | 重复0个或无穷多个前一个字符 | ls -l * = ls | grep -n '^a.*' grep 'go*d' test.txt 得到gd 、god 、good 、goood ...... |
.* |
表示任意多个任意字符 | ||
[ ] | 匹配单个字符 | [A] 匹配字符A |
|
[list] | 匹配集合中的某个字符 | [abcd] 匹配abcd任意一个字符 |
grep -n 'a[alf]y' test.txt |
[n1-n2] | 选取范围 | [A-Z] 匹配A-Z之间的任意一个字母 |
grep '[A-Z]-00' test.txt grep '[a-zA-Z]' |
[^list] | list的补集 | [^abcd] 匹配除了abcd的任意一个字符 |
|
{n,m} | 连续前一个字符 | {n,m} 匹配n~m个前一个字符 |
grep -n 'go{2,3}g' test.txt 找g与g之间有2~3个o |
字符 | 说明 | 用法 |
---|---|---|
+ | 重复一个或一个以上的前一个RE字符 | egrep -n 'go+d' test.txt |
? | 零个或一个前一个字符 | egrep 'go?d' test.txt 得到gd 或god |
| | 或的方式找字符串 | |
() | 找出组字串 | egrep -n 'g(la|oo)d' test.txt 得到glad 或good |
()+ | 多个重复组判别 | egrep 'A(xyz)+C' A开头,C结尾,中间n组xyz |