正则符号详细说明

正则符号详细说明

(一)正则符号作用说明

    作用:方便匹配找出文件中的内容信息

(二)正则表达符号分类

    基础正则表达式(basic regular expression) eg:^ $ . * [] [^]  

    扩展正则表达式(extended regular expression) eg:| + () {} ?

     ---扩展正则表达式适用于egrep /sed -r

(三)正则符号注意事项

1)按照每行信息进行过滤处理

2)注意正则表达符号禁止中文

3)附上颜色信息进行正则过滤   --color=auto/--color

PS:centos7系统egrep命令默认带颜色--alias egrep='egrep --color=auto'

(四)基础正则符号说明

1)尖角符号:^ 表示以什么字符开头的一行信息

2)美元符号:$ 表示以什么字符结尾的一行信息

3)空行符号:^$ 表示过滤空行信息 -v 取反

4)点号符号:. 表示匹配任意一个且只有一个字符

       grep -o “.” file.txt

       -o 表示显示grep命令执行过程

5)星号符号:* 表示前一个字符出现0次或者多次

6)点星符号:.* 表示匹配任意所有信息(包含空行)

       ^.*xxx 表示以任意字符开头xxx结尾(贪婪匹配)

       ^xxx.*xxx$ 表示以xxx开头,xxx结尾的所有行

7)转义符号:\

      1.表示还原字符的本来意思

               ‘\.$’ 表示查询出以点结尾的行信息

      2.转移符号的常见用法汇总

               \n 表示匹配一个换行符号

               \r 表示匹配一个换行符号

               \t 表示匹配一个制表符号

    8)括号符号:[] 表示包含括号中信息

               [abc] 表示匹配包含a或b或c信息的字符

               ^[abc] 表示匹配以a或b或c字符开头的行信息

               [a-zA-Z0-9] 找出所有包含字母和数字的行信息

               [a-Z] 表示匹配包含字母的行信息

               ^[a-z].*[.!]$ 表示以小写字母开头并且以.或者!结尾的行信息

   9)排除符号:[^] 表示排除括号中信息

              [^abc] 表示排除包含a或b或c信息的字符

              ^[^abc] 表示排除包含a或b或c信息开头的行

(五)扩展正则符号说明

1)加号符号:+

                  1.表示前一个字符连续出现1次或者多次以上

                            egrep “0+” file 表示取出数字0字符,以及连续的多个数字0字符

                  2.补充说明:一般加号符号经常是与中括号使用,可以匹配出多个不同的连续字符

2)竖线符号:|

                 表示匹配多个满足条件的信息(或者)

    3)括号符号:()

  1. 表示匹配一个整体信息 egrep “b(o|e)y” file 表示过滤指定信息
  2. 表示后项应用前项

    sed -r ‘s#(.*)#<\1>#g’ 利用sed命令实现后项应用前项

    sed -r ‘s#([0-9]+)#<\1><\2>#g’ 利用sed命令实现后项应用前项

    sed -r ‘s#(..)(..)(..)#<\1><\2>#g’ 利用sed命令实现后项应用前项

   4)括号符号:{}

    表示定义前面字符出现次数

    X{n,m} 表示前一个字符至少连续出现n次,最多出现m次

    X{n} 表示前一个字符正好连续出现n次

    X{n,}表示前一个字符至少连续出现n次,最多出现多少次不限

    X{,m}表示前一个字符至少出现0次,最多出现m次

  5)问号符号:?

      表示定义前面字符出现0次或1次

(六)正则符号使用问题

1)问题:尖角符号和星号符号区别? ^d和d*

2)问题:星号符号匹配不存在信息? grep ‘’

3)问题:过滤时是否使用引号区别? egrep [ab]{1,} file.txt

(七)正则符号特性说明

1)正则表达符号具有贪婪特性

2)扩展正则转换基础正则方法 grep ‘go\+d’

 

总结:

*  匹配前一个字符出现0次或者多次

+  匹配前一个字符出现1次或者多次

{} 匹配前一个字符指定出现多少次,至少0次

?  匹配前一个字符出现0次或者1次

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值