常用正则表达式操作符

操作符			用途

.(句号)		匹配任意单个字符。
^(脱字号)		匹配出现在行首或字符串开始位置的空字符串。
$(美元符号)	匹配出现在行末的空字符串。
A				匹配大写字母 A。
a				匹配小写字母 a。
\d				匹配任意一位数字。
\D				匹配任意单个非数字字符。
\w				匹配任意单个字母数字字符,同义词是 [:alnum:]。
[A-E]			匹配任意大写的 A、B、C、D 或 E。
[^A-E]			匹配除A、B、C、D 和 E 之外的任意字符。
X?				匹配出现零次或一次的大写字母 X。
X*				匹配零个或任意个大写 X。
X+				匹配一个或多个字母 X。
X{n}			精确匹配 n 个字母 X。
X{n,m}			匹配最少 n 个并且不超过 m 个字母 X。如果省略 m,表达式将尝试匹配最少 n 个 X。
(abc|def)+		匹配一连串的(最少一个) abc 或 def;abc 和 def 将匹配。

署名类
[:alnum:]		字符和数字
[:digit:]		数字,等价于[0-9]
[:blank:]		空格和制表符
[:upper:]		大写字母
[:lower:]		小写字母

应用示例

1.查找以”H”开头的名称

grep -E '^H'

2.查找以”H”为结尾的名称

grep -E 'H$'

3.查找空行

grep -E '^$'

4.查找多个备选项

grep -E '^(c|d)' //以c和d开头

grep -E '^[a-d]' //以a/b/c/d开头的

grep -E '^[a-cmn]' //以a/b/c开头,或得m/n开头的

grep -E '^[A-z]' //以任意字符开头的, A-z相当于A-Za-z

^的反转含义

grep -E '[^a-z]' //不是以a-z开头的

5.重复

grep -E '^[0-9]{11}' //手机号码,0-9开头,必须11位数

grep -E '^[A-z][A-z0-9]{2,7}' //用户名,以A-z开头,后面可跟任意2到7个字符或数字

?,*,+分别表示重复0次或1次,重复任意次,重复1次或多次。