Day16 三剑客之正则表达式
什么是正则表达式(Reular rcpresssion RE)
发明了1套符号,不同符有不同含义,方便我们在文件中查找/过滤内容
分类
基础正则(BRE)
^ $ ^$ . * .* [] [^]
扩展正则(ERE)
+ | () {} ?
通配符与正则的区别
名称
作用
支持的命令
通配符
方便我们进行查找文件
Linux下面大部分命令支持
正则
方便我们就行过滤(在文件中查找内容)
Linux三剑客 开发语言Python GO PHP JAVA
正则中的注意事项
注意中文符号
给grep egrep加上颜色(centos7自动添加)
centos6需要自己添加别名
正则表达式符号含义
基础正则(grep)
1.^ :以...开头的行
使用方法:^m ^oldboy
2.$:以...结尾的行
使用方法:m$ oldboy$
cat -A 显示出所有的隐藏符号每行结尾有个$
3.^$:显示空行 这一行种什么都没有(排除空行)
4.(点):任意一个字符(单个)
grep -o:显示grep每次过滤出什么内容 显示grep执行过程
不会匹配出空行
5.\ 转义字符 脱掉马甲 打回原形(去掉符号原有的特殊含义)
6:转义字符系列
\n:回车/换行
\t:按tab
echo -e(支持转义字符)
echo -n(不输出每行结尾的回车)
- (*) :前一个字符连续出现0次或0次以上
000
0000000(连续出现的0)
oldboy(连续出现的字母)
8.(.*):所有 任意字符
特点:贪婪性(能匹配多少就匹配多少 来者不拒)
在正则表达式表示所有(.*)或者是连续出现的时候 会产生贪婪性
9.[]:中括号
grep '[a-zA-Z]' 筛选大小写
grep '[a-z,A-Z]' 筛选大小写还有逗号
grep '[a-Z]' 筛选大小写
grep '[0-Z]'筛选出所有数字与字母
符号放到[]外面
10.[^]:中括号取反
扩展正则(egrep/grep -E)
1.+:前一个字符连续出现一次或多次
一般与[]一起使用
2.|:或者
3.():被括起来的内容相当于一个整体
用来表示后向引用(反向引用)
4.{}:连续出现
*:≥0次
+:≥1次
a{a,b} 最少a次最多b次 ≥a≤b
a{a,}最少出现a次≥a
a{,b}最多出现b次≤b
5.?:前一个字符出现0次或1次
'ab?c' b出现0次或一次
6.括号表达式:[[:alnum;]]大小写字母和数字
查询帮助
man grep
info grep