. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白符
\d 匹配数字 等价于[0-9]
\D 匹配非数字字符
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
其中,[^A-Z]
表示除了不包含大写字母,^取反;^[A-Z]
表示以大写字母开头
一、正则单字符表示方式
1、特定字符 ‘X’
例子:匹配包括字母a的行 grep ‘a’ passwd
2、范围字符 [] [^]
例子:匹配包含数字或小写字母的行 grep ‘[0-9a-z]’ passwd
匹配不包含数字的行 grep ‘[^0-9]’ passwd
3、任意字符 .
例子:匹配所有字符 grep ‘.’ passwd
注意和’[.]‘和’.‘的区别:’[.]‘表示范围内包含.字符串,’.'代表.这个字符串本身
二、正则表达式其他符号
1、边界字符:头尾字符
^ : ^root 表示匹配以root字符串开头的行
例子:grep ‘^root’ passwd
注意和[^]的区别: [^]表示取反
$ : bash$ 表示匹配以bash结束的行
例子:`grep 'bash$' passwd`
^$ : ^$ 表示空行
例子:`grep '^$' passwd`
2、元字符
\w:匹配任何字符类字符,包括下划线([A-Za-z0-9])
\W:匹配任何非字符类的字符。([^A-Za-z0-9])
\b: 代表单词的分隔
三、正则组合-重复字符表示
1、重复
*:零次或多次匹配前面的字符或子表达式
+:一次或多次匹配前面的字符或表达式
?:零次或一次匹配前面的字符或表达式
2、重复特定次数:{n,m}
例子:数字重复2到3次
grep ‘[0-9]{2,3}’ passwd
四、正则组合-逻辑符合表示
1、任意字符串的表示:.*
例子:匹配r开头的行 ^r.*
例子:匹配m开头c结束的字符串 m.*c
例子:匹配m开头c结尾的行 ^m.*c$
2、逻辑或的表示: |
例子:匹配bin后面可能接’false’或’true’的行
grep 'bin/\(false\|true\)' passwd
五、案例
案例一
匹配4-10位的QQ号 grep '^[0-9]\{4,10\}$'
qq.txt
案例二
匹配15位或18位的身份证号(支持带X的)grep '^[0-9]\([0-9]\{13\}\|[0-9]\{16\}\)[0-9xX]$' passwd