正则表达式

24 篇文章 0 订阅
6 篇文章 0 订阅

1.基本元字符集及其含义

正则表达式识别的特殊字符包括:
. * [] ^ $ {} \ + ?| ()

. 特殊字符点号用来匹配除换行符之外的任意单个字符。

^ 只只匹配行首echo -e "123456acdd\nhgncdg" |grep 123
$ 只只匹配行尾echo -e "123456acdd\nhgncdg" |grep dg
* 只一个单字符后紧跟*,匹配0个或多个此单字符echo  -e "123456acdd\nhgncdg" |grep c*


[ ] 只匹配[ ]内字符。可以是一个单字符,也可以是字符序列。可以使用-表示[ ]内字符序列范围,如用[ 1 - 5 ]代替[ 1 2 3 4 5 ]
\ 只用来屏蔽一个元字符的特殊含义。因为有时在shell中一些元字符有特殊含义。\可以使其失去应有意义
. 只匹配任意单字符
p a t t e r n \ { n \ } 只用来匹配前面p a t t e r n出现次数。n为次数
p a t t e r n \ { n,\ } m 只含义同上,但次数最少为n
p a t t e r n \ { n,m \ } 只含义同上,但p a t t e r n出现次数在n与m之间

echo -e "dhdfhb123456\n aaadfhch\ndddddfhhh" |grep '[0-9]\{1,2\}' 

2.扩展正则表达式

? 问号表明前面的字符可以出现0次或1次,但只限于此。它不会匹配多次出现的字符。

echo -e "acdf\n123"|egrep 123?

+ 加号表明前面的字符可以出现1次或多次,但必须至少出现1次。echo -e "acdf\n123\n456123"|egrep 123+

{n,m} ERE中的花括号允许你为可重复的正则表达式指定一个上限。这通常称为间隔(interval)。
可以用两种格式来指定区间。
 m:正则表达式准确出现m次。
 m, n:正则表达式至少出现m次,至多n次。
这个特性可以精确调整字符或字符集在模式中具体出现的次数。

echo -e "acdf\n123\n456123"|egrep  "123{1,2}"

| 管道符号允许你在检查数据流时,用逻辑OR方式指定正则表达式引擎要用的两个或多个模式。

() 正则表达式模式也可以用圆括号进行分组。当你将正则表达式模式分组时,该组会被视为一个标准字符。可以像对普通字符一样给该组使用特殊字符。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值