day16正则表达式

正则表达式(Regular Expression RE)

1.含义:发明了一套符号 不同的符号有不同的含义 方便我们在文件中查找/过滤内容

2.分类

基础正则(BRE)
^ $ ^$ . * .* [] [^]

扩展正则(ERE)
+ | () {} ?

3.通配符与正则的区别

名称 作用 支持的命令
通配符 方便我们进行查找文件 Linux下面大部分命令支持
正则 方便我们就行过滤(在文件中查找内容) Linux三剑客 开发语言Python GO PHP JAVA

4.正则中的注意事项

注意中文符号
给grep egrep加上颜色(centos7自动添加)
centos6需要自己添加别名

5.正则表达式符号含义

基础正则(grep)

1.^ :以...开头的行
使用方法:^m ^oldboy

2.$:以...结尾的行
使用方法:m$ oldboy$
cat -A 显示出所有的隐藏符号每行结尾有个$

3.^$:显示空行 这一行种什么都没有(排除空行)

  1. .(点):任意一个字符(单个)
    grep -o:显示grep每次过滤出什么内容 显示grep执行过程
    不会匹配出空行

5.\:转义字符 脱掉马甲 打回原形(去掉符号原有的特殊含义)

6.转义字符系列
\n:回车/换行
\t:按tab
echo -e(支持转义字符)
echo -n(不输出每行结尾的回车)

  1. * :前一个字符连续出现0次或0次以上
    000
    0000000(连续出现的0)
    oldboy(连续出现的字母)
  1. .*:所有 任意字符
    特点:贪婪性(能匹配多少就匹配多少 来者不拒)
    在正则表达式表示所有(.*)或者是连续出现的时候 会产生贪婪性

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;]]大小写字母和数字

7.查询帮助
man grep
info grep

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容