基础正则 | 含义 | 搭配 |
---|---|---|
^ | 以…为开头的行 ^lcf | |
$ | 以…为结尾的行cf$ | |
^$ | 空行 | |
. | 任意一个字符 | .* |
* | 前一个字符出现重复0次0次以上 | |
.* | 所有内容 | |
| | 转译字符 \t \n | |
[] | 一个整体匹配里面任意一个字符[abc] a或b或c | [^ ]取反 |
扩展正则 | 含义 | 搭配 |
---|---|---|
+ | 前一个字符出现一次或一次以上 | [a-z]+只要字母 |
丨 | 或者 匹配一个或多个字符 | |
() | 1.被阔起来的内容表示一个整体 2.反向引用(常用于sed) | |
{} | 连续出现 eg: o{n,m}前一个字母o连续出现n到m次 o{n,}最少连续出现n次 o{n}连续出现n次 | |
? | 连续出现 前一个字符出现0次或1次 |
扩展正则配合egrep sed -r使用
egrep -o 可以只选取匹配的字符
[root@foundation76 Desktop]# egrep -o '[0-9]+' 2 #只要数字
2121
121
11255
[root@foundation76 Desktop]# cat 2
Awelcome nowcoder2121
Awelcome to nowcoder121
Bnowcoder11255
简单例子:过滤出身份证号
egrep '[0-9]{17}[0-9X]' id.txt
排除空行或#的行
egrep -v '^$|#' 2
总结:
连续出现的符号: ? + * {}
其他: | [] [^] () . ^ $ ^$
常见搭配:^$ []+ .*