基础正则表达式

首先,正则表达式和shell通配符是完全两个东西,要注意对比不能混淆。比如:通配符中的 * 表示任意字符,而正则中表示任意个重复 * 号前面的字符......

下面开始介绍正则表达式中的的相关内容

1,[ ], 中括号表示需陪匹配的字符集,注意,这是一个集合,

如:[ a1cf] 表示匹配包含a,或者1,或者c,或者f的行,注意是或的关系

       [a-z] 表示匹配包含小写字母,a-z是联系的小写字母,所以可以用 - 连接起来

               [a-zA-Z0-9] 表示匹配含小写字母或者大写字母或者数字

               [ [:alpha:] ] 表示匹配所以的字母,包括大小写字母,其中[alpha:] 是正则表达式中的特殊字符代表字母集,注意还有其他的特殊字符集合:

[:alnum:]: 0-9,A-Z,a-z

[:blank:]: 空格键和tab键

[:cntrl:]: 控制键,CR,LF,TAB,Del

[:digit:]: 数字

[:graph:]: 除了空格键以外的所有键

[:lower:]: 小写字母集合

[:print:]:  任何可以打印出来的字符

[:punct:]: 标点符号

[:upper:]: 大写字母集合

[:space:]: 任何可以产生空白的字符

[:xdigit]:  代表十六进制的数字类型,0-9,A-F,a-f等数字和字符

^[[:graph:]] :以字母为行首的

[^[:graph:]] :不包含字母的,注意和上一行的区别,  这个是反选的意思

[[:graph:]]$ :以字母为行尾巴的

对于行首 ^ 和行尾 $ 的字母理解,可以跟linux中文本的存储格式结合,linux文本中每一行都是以^开头,以$结尾,如果是空白行的话就是  ^$,

注意:[ ]里面的字符是以一个字符进行匹配的,多个字符之间是通过或的方式来组合的。这个要在应用中慢慢体会。

2,任意字符 .    和 任意个数的重复字符 *

. 代表任意一个字符,该字符必须存在

* 代表任意个重复的字符。

注意,这中类型的匹配和上面的集合不同,不要把*号放到[ ]进去哦。

如: grep 'o*' file.txt, :匹配包含任意个重复的连续的o


3,限定连续有限个重复字符范围 {}

上面的*表示可以任意多个重复的字符,而如果有限个重复的字符,那么就要用{}限定起来,例如:

grep -n  'o\{2\}' :两个重复的o

grep -n 'o\{2,5\}' :2到5个的重复o

grep -n 'o\{2,\}' :2个以上的o

注意,这个{ }打括号和[ ]中括号的用途不应样,两种使用情况不一样。

切记正则表达式要配合支持正则表达式的工具才能发挥其用处,比如grep,sed,awk等文本编辑工具就支持正则表达式。

这里介绍了正则表达式的基础,还有扩展的正则表达式在后续中更新。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值