常用正则表达式
常用正则表达式操作符
操作符 用途
.(句号) 匹配任意单个字符。
^(脱字号) 匹配出现在行首或字符串开始位置的空字符串。
$(美元符号) 匹配出现在行末的空字符串。
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次或多次。