shell中正则表达式

正则表达式

正则表达式,是用于描述字符排列和匹配模式的一种语法规则。他的主要用于字符串的分割,匹配,查找及替换操作。
通俗来说正则表达式是用来匹配文化部中字符串的方法,他先将整个文本分成一行一行的字符串 ,接着从字符串里搜索是否有符合正则表达式的字符串,如果有则匹配成功
“grep 、awk 、sed 、vi 等 都支持正则表达式”
“ls 、find 、cp 等 不支持”
在正则表达式中我们把特殊字符成为云字符。在shell中元字符分为基础元字符扩展元字符

基础元字符

1、 * 匹配前面的一个字符或子表达式0次或任意多次
如:a*hello匹配所有0个或多个a后,紧跟hello的行。即hello前面可以有任意多个a

2、. 匹配除换行符和回车符(“\n”和"\r")外的任意一 个字符
如:l…e匹配包含一个l,后跟两个任意字符,然后跟一个e的行

3、^ 匹配行首
如,^hello 会匹配以 hello 开头的行

4、$ 匹配行尾
如,hello$ 会匹配以 hello 结尾的行

5、[] 匹配中括号内的任意一个字符(只匹配一个)
如, [aoeiu]匹配任意一个元音字母

6、[^] 不匹配中括号里的字符
如,【^0-9】匹配任意一位非数字字符

7、\ 转义符
用于取消特殊符号的含义,使该特殊字符成为普通字符

8、{n} 使前面的字符出现n次
如,[0-9]{4} 匹配4位数字

9、{n,} 使前面的字符出现不少于n次
如,[0-9]{2,} 匹配两位及以上的数字

10、{n,m} 使前面的字符至少出现n次,最多出现m次
如,[a-z]{6,8} 匹配 6〜8 位的小写字母

**基础元字符是grep默认支持的,而扩展元字符就必须得使用egrep 或 grep -E **

扩展元字符

1、 + 匹配前面的字符一次或多次
如“go+gle”会匹配“gogle” “google”或“gooogle”。当然,如果“o”有更多个,则也能匹配

2、? 匹配前面的一个字符零次或一次
如 “colou?r” 可以匹配 “colour” 或 “color”

3、| 表示或的意思
如“was|his”既会匹配包含“was”的行,或匹配包含“his”的行

4、() 会将括号里的看成一个整体 ,相当于一个大字符
如“(dog)+”会匹配“dog” “dogdog” “dogdogdog”等,因为被()包含的字符会被当成一个整体

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值