Linux正则表达式

1、正则表达式的meta字符:
          \      转义符
          .      匹配单个字符
          *      匹配前一个字符(>=0)
          ^      匹配紧接着的正则表达式,在行首位置
          $      匹配前面的正则表达式,在行尾位置
          []     匹配方括号里面的任意一个字符
          \{n,m\}区域表达式,匹配在他前面的单个字符重现的次数
                 \{n\}表示出现n次,
                 \{n,\}表示至少出现n次
                 \{,m\}表示最多出现m次
          \( \)  将括号之间的模式存储在特殊的保留空间,最多9个
                 然后位后面重复相同模式的进行调用,如:\(ac\).*\1
                 会查找出achhehekehac的字符串
          \n     通常与\( \)结合使用,1<n<=9
          +      匹配前面的正则表达式的一个或多个实例
          ?     匹配前面的正则表达式的零个或一个实例
          |      匹配与|前或后的正则表达式
         ()    匹配于方括号括起来的正则表达式群
  2、POSIX字符集:
          [:alnum:]       数字字符
          [:alpha:]       字母字符
          [:blank:]       空格(space)和定位符(tab)
          [:cntrl:]       控制字符
          [:digit:]       数字字符
          [:graph:]       非空格字符
          [:lower:]       小写字母字符
          [:print:]       可显示的字符
          [:punct:]       标点符号字符
          [:space:]       空白字符
          [:upper:]       大写字符
          [:xdigit:]      十六进制数字
  3、结合grep命令使用,可以查找按照正则表达式设置的选择所需要的内容
           grep的参数:
                 -i  不区分大小写
                 -v  在规定的搜索结果中取反
                 -n  显示匹配的行在文件中的行号
                 -An 匹配行的前n行
                 -Bn 匹配行的后n行
                 -Cn 匹配行的前后各n行
                 --color 高亮显示
                 -E=egrep 扩展grep
做作实验:
  1、参看指定的字符串
 
可以看出,上图选择出了指定的aaa的行,并高亮标记
 2、选择出以空格开头的行
 
可以看出选择出了以空格开头的行,即第四行,但是空格不显示颜色,需要反选
才能看到颜色。
 3、选出以aA开头的中间有任意字符串,后面跟着aA 结尾的行
 
 4、选择出以空格开头,且出现两次aA的行,两次aA之间有其他的字符串
 
 5、要选择出出现aA,且后面某个位置还出现了aA,以出现多次aA,且以aA结尾的行,如下图:
 
 6、选择出以aAxy开始,且以xyaA结束的行 
 7、显示符合a的字符,重复出现3到六次的行,如下图所示
 
以上内容是基本正则表达式,后面博客讲介绍扩展正则表达式。

 扩展正则表达式:
    扩展正则表达式在基本正则表达式的基础使其功能更强大
    但是他的mota基本上是一样的,下面主要讲述他们之间的
    不同之处:
      ^    行首定位符
      $    行尾定位符
      .    匹配一个字符
      *    匹配零个或多个前导字符, 如'*love' 匹配包含0个
           或多个空格后的模式love的行
      []   匹配一组字符中的任一个
      [^]  匹配不再指定的字符组内的字符
      +    匹配一个或多个加号前的字符 如'[a-z]+ove' 可以
           找出move ,approve ,love ,xxxove等
      ?   匹配0个或一个前导字符'lo?ve' 可以找出love或lve
      a|b  匹配a或b  如love|hate  可以找出love或hate或含有love 和hate的行
      ()   匹配字符组,如'love(abe|ly)(ov)+'匹配lovable或lovely
           匹配ov的一次或多次
一下是我在/tmp/下建立的一个zz的文件,并在这个文件上实验以上几个
mota的实验:
 1、+号的使用,匹配一个或多个加号里的字符
 
 2、?号的使用,用于匹配0个或一个前导符:
 
 3、a|b的使用,用于匹配a或b或含a和b的字符串:

4、()的使用,匹配括号内的字符组:
 
以上是简单的扩展正则表达式的介绍和试验的操作,以后还会不定期的进行修改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值