正则表达式

元字符
正则表达式是一种字符模式
例如

^[0-9]+$

^开头 $结尾 0-9表示这些字符 +号表示前面这些字符出现1次到多次,这就叫模式
匹配邮箱:[a-z0-9_]+@[a-z0-9]+.[a-z]+
.表示任意单个字符,所以需要\来转义
[0-9]{1,3} 就是0-9出现了1-3次
[0-9]可以使用[[:dight:]]

1、元字符
shell中也叫通配符
而正则中是由各种执行匹配模式操作的程序来解析,比如vi grep sed awk python
grep ‘abc*’ * 表示前面的字符也就是c出现0次到多次
<[tT]om>代表一个单词,前后不能有字母,可以有符号

分为两类:基本元字符和扩展元字符
基本元字符:

 ^       行首定位符                ^love          这个字符就是要在行首,也可能是列
 $       行尾定位符                love$          这个字符就是要在行尾
 .      匹配单个字符                l..e
 *      匹配前导符0到多次            ab*love
 .*     任意多个字符                 相当于查询所有     r.*t 就是rt中间不管啥都能匹配上
 []     匹配指定范围内的一个字符      [lL]ove
 [-]    匹配指定范围内的一个字符      [a-z0-9]ove
 [^]    匹配不在指定组内的一个字符    		[^a-z0-9]ove      除了a-z0-9,全除去   正则里区分大小写
 \      转义元字符                 love\.         转义放在元字符身上,它们将失去作用,回到原意 
 \<     词首定位符                  \<love
 \>     词尾定位符                  love\>
 \(..\) 匹配稍后使用的字符的标签       :%s/\(172.\)\(16.\)\(130.\)1/\1\2\35/  后面这\1\2\3代表前面3个括号
 x\{m\} 字符x重复出现m次
 x\{m,\} 字符x重复出现m次以上
 x\{m,n\} 字符x重复出现m到n次 

扩展元字符 需要用egrep才能使用 * ? + {}都不是给自己活着的,都是给别人活着的

  •           匹配一个或多个前导字符
    

? 匹配0个或1个前导字符
a|b 匹配a或b
() 组字符 (ov)+一起匹配就加() 把里面的看做整体
(…)(…)\1\2 标签匹配字符
/^$/ 空行

grep实战:
grep ‘^root’ /etc/passed /etc/shadow 后面可跟多个目录

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值