正則表達式之基础篇

今天看了鸟哥的linux私房菜。关于正則表達式:简单做笔记例如以下:

[:upper:] 大写字母 A-Z

[:lower:] 小写字母 a-z

[:digit:]  数字 0-9

[:alpha:] 字母   A-Z a-z

[:alnum:] 字母和数字 A-Z a-z 0-9


首先介绍几个字符:

^ 表示行首  (^在方括号[ ]内表示不包括。在[ ]外表示行首!

!)

$ 表示行尾

[] 不管括号内有几个字符,仅仅能代表 “当中一个”!!

{ } 表示字符出现的次数,因为花括号本身在shell有意义,因此使用时需加上转义字符\。


grep :

 -n  列出行号

 -v 反选(即打印出不包括后面字符的行)

-i ignore 大写和小写。即对大写和小写不敏感


以下的几个样例一下就明确了: (以正則表達式与grep使用为例,当然了。仅仅要支持正則表達式,以下的命令式通用的)

grep  -n  'the' a.txt     //在a.txt中寻找包括the的行。

grep -vn 'the' a.txt     //在a.txt中寻找不包括the的行

grep -in 'the' a.txt     //在a.txt中寻找 'The','THE' 等字符。大写和小写不敏感。


grep -n 't[ab]ll'  a.txt    //在a.txt中寻找'tall' 或者是'tbll'.

grep -n '[^b]ee' a.txt    //在a.txt中寻找'ee'。可是要求'ee'之前不能是b

grep -n '[^A-Z]ee' a.txt     //在a.txt中寻找'ee'。可是要求'ee'之前不能是大写字母 

等价于  grep -n '[^[:upper:]]ee' a.txt 


grep -n '^A' a.txt   //在a.txt中寻找以 A 开头的行

grep -n 'B$' a.txt   //在a.txt中寻找以 B 结尾的行

grep -n '^[A-Z]' a.txt //在a.txt中寻找以 大写字母 开头的行

grep -n '^$' a.txt    //在a.txt中寻找空行

grep -vn '^$' a.txt | grep -nv '^$'  //在a.txt中寻找 既不是空行 也不以 # 开头的行


.  表示绝对有一个随意字符

* 表示反复前一个字符0到正无穷次

grep -n 'g..d' a.txt  //在a.txt中寻找g与d之间隔两个字符的行

grep -n 'ooo*' a.txt //在a.txt中寻找至少包括两个 oo 的行

grep -n 'goo*g' a.txt  //在a.txt中寻找g与g之间至少包括一个o的行

grep -n 'g.*g' a.txt  //在a.txt中寻找以g开头与结尾。中间为随意字符的行  //注意此处不能是 g*g!


{} 用于表示连续几个字符 ,比方2-5个o

grep -n 'o\{2,5\}' a.txt

转载于:https://www.cnblogs.com/ldxsuanfa/p/10834103.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值