正则表达式有两类:
Basic REGEXP:基本
Extended REGEXP:扩展
基本正则表达式:
. : 任意单个字符
[]: 指定范围内的单个字符
[^]: 指定范围外的单个字符
次数匹配:
*:其前面的字符任意次
\?:0或1次
\{m,n\}:至少m次,至多n次
.* : 任意长度的任意字符
锚定:
^:行首锚定
$:行尾锚定
\<:锚定词首
\>:锚定词尾
\(\): 分组
\1,\2,\3,...
grep : 使用基本正则表达式定义的模式来过滤文本的命令
-i: 不区分大小写
-v: 反向匹配
-o:只显示匹配到的字符串
--color:匹配到的高亮显示
-E :使用扩展正则表达式
-A # :当某一行被grep指定的模式匹配到后,那一行不但显示,后面也显示
-B # : 同上,不但匹配的那行显示,前面也显示
-C # : 同上,不但匹配的那行显示,上下#行也显示
扩展正则表达式 :
字符匹配 :
. : 匹配单个字符
[]: 指定范围内的单个字符
[^] : 指定范围外的单个字符
次数匹配 :
* ;其前字符任意次
? : 其前字符0或1次
+ : 匹配其前面的字符至少一次
{m,n}
位置锚定:
^
$
\<
\>
分组:
():分组
\1,\2,\3,...
或者
| : or
C|car : C或cat
grep -E = egrep
匹配空白字符至少一次
# grep -E ‘^[[:space:]]+‘ /etc/passwd
找出/boot/grub/grub.conf文件中1-255之间的数字;
# egrep ‘\<([1-9] | [1-9] [0-9] | 1 [0-9] [0-9] | 2 [0-4] [0-9] | 25 [0-5])\>‘ /boot/grub/grub.conf
ipv4:
五类 :
A : 1 - 127
B : 128-191
C : 192 -223
D
E
匹配ip:
# \<([1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3])\>(\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>){2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>
grep,egrep
fgrep : 不支持正则表达式