正则表达式

字符匹配

. : 任意单个字符

[] : 指定范围内的任意单个字符

[^]: 指定范围外的任意单子字符

[:alnum:]:字母和数字

[:alpha:]:任意英文大小写字符 : A-Z a-z

[:lower:]:小写字母

[:upper:] :大写字母

[:blank:]:空白字符 空格和制表符

[:space:]:水平和垂直的空白字符

[:cntrl:]:不可打印的控制字符 退格 删除 警铃

[:digit:]: 十进制数字

[:xdigit:]:十六进制数字

[:graph:]:可打印的非空白字符

[:print:]:可打印字符

[:punct:]:标点符号

匹配次数

* : 任意次数包括0次

.* : 任意长度的任意字符

? : 前一个字符0或1次

+ : 前一个字符串至少1次

{n} : 前字符N次

{m,n}:前字符至少m次,最多n次

{,n} : 前字符最多n次

{n,} : 前字符最少n次

 

位置锚定

^:行首 grep -v "^#" /etc/fstab |grep -v "^$" (grep 排除 “井号开头” /etc/fstab |grep 排除 “空行”)

$:行尾

^$:空行

^[[:space:]]*$ : 空白行

 

词首词尾:

<或 单词词首 例子:grep “<root” /etc/passwd

>或 单词词尾 例子:grep “root>” /etc/passwd

<root> 匹配整个单词 等价于 -w

 

分组

():括号优先级最高 例子:echo abcabcabc | grep (wang){3} (abc出现3次)

1:匹配括号 从左半括号到右半括号之间的字符(注意 不是规则)

| :或者 (a|b)xy 匹配 a或者b 后面跟xy axy bxy 都可以匹配

 

 

原文地址:https://www.cnblogs.com/itstone/p/11766197.html