一、基础正则表达式
用某种模式去匹配字符串的公式,由字符和元字符组成
适用与Liunx
1、.匹配换行符以外的任意一个字符 grep 'r..t'
2、*匹配前一个字符0次或多次 grep 'r.*'任意长度不包含换行符的字符
3、\{n,m}\控制字符重复字数,
\{n\} 匹配前一个字符n次,
\{n,\}匹配前一个字符至少n次,
\{n,m\}匹配前一个字符个数的范围为n-m
4、^开头字符标识,$结尾字符标识 grep '^r.*h$' /etc ^$为空行
5、[ ]匹配括号内的任一字符 [a-z],[1..5],[a-zA-Z],[^A-Z]表示取反
6、\转义 \.*匹配任意长度的.
7、\< \>界定单词的左右边界 echo "hello" | grep '\<hello\>' --hello
8、\d 等价于[0-9] echo 123 | grep '\d'
9、\b 匹配单词边界 grep "\b hello \b"
10、\B匹配非单词边界
11、\w匹配字母、数字和下划线 [A-Za-z0-9]
12、\W匹配非字母、非数字和非下划线[^A-Za-z0-9]
13、\n换行符
14、\r回车符
15、\t 制表符
16、\f 换页符
17、\s任意空白符
18、\S任意非空白符
二、扩展正则表达式
扩展正则表达式实在基础正则表达式的补充,即只增加几个扩展符号。使用扩展正则表达式适用egrep命令
?匹配前一个字符0次或n次
+匹配前一个字符至少1次以上
|或
()与| h(ar|oo|01)d
三、通配符
文件搜索,用于word文档
* 表示0个或多个字符
?表示任意一个字符
{}匹配任意以,隔开的字符,支持嵌套
ls -l {a,b,c}.doc
ls -l [a-z].doc
ls -l {a-z}*.doc,[0-9]??.txt}
^ !与[]表取反