Linux正则语法

1、正则表达式

基本正则表达式元字符集合及含义
符号含义
*匹配0个或多个*之前的那个普通字符
.匹配任意一个字符
^匹配行首,当放在[]中表示取反
$匹配行尾巴
[]匹配集合中的任意一个字符
\转义符,屏蔽一个元字符的特殊含义
\<\>精确匹配某个符号
\{n\}匹配前面字符出现n次
\{n,\}匹配前面字符至少出现n次
\{n,m\}匹配前面字符出现n~m次

示例

  • *号:用于匹配前面一个普通字符0次或多次重复
hel*O #可以匹配helo\hello\helllo等
  • .号:用于匹配任意一个字符
he..o #hexxo he*\o .可以匹配任意一个字符,因此也可以匹配一个空格 'he  o'也可以匹配
  • ^号:用于匹配首,表示行首的字符是^后面的那个字符
^hello 	#可以匹配hello开头的行
^...o	#匹配任意字符开头,中间两个任意字符,最后是0的字符串
  • $号:用于匹配尾,表示行位的字符是$前面的那个字符
liuck$	#匹配以liuck结尾的所有行

匹配空行的方法

^$		#表示匹配空行
  • []号:用于匹配字符集合,该符号支持穷举法列出字符集合的所有元素,也支持使用"-"符号表示字符集合范围
[012345] #匹配一个字符集合,只要该字符集合中含有012345任何一个字符即可匹配上
[0-9]	#支持集合范围,匹配数字
[a-z]	#匹配所有小写
[A-Z]	#匹配所有大写

当^号放到[]符号中就不在表示匹配行首了,而是表示取反符号

[^b-m]	# ^表示不再匹配b-m范围内的所有小写字符
  • \转义符号:用于屏蔽元字符的特殊含义,比如匹配.就应该用\.。这样 .号就不再表示匹配任意一个字符了
  • \<\> :精准匹配符号,如\<the\>会精准匹配the单词,而不匹配包含the的单词,如不会匹配到them、there等
  • \{\}系列符号
jo\{3\}b		#匹配字符o 3次
jo\{3,\}b		#匹配o字符至少3次
jo\{3,6\}b		#匹配字符o 3~6次
[a-z]\{5\}		#精确匹配5个小写英文字符

2、正则表达式的扩展

awk和perl等linux工具还支持正则表达式扩展出来的一些元字符。

扩展的正则表达式元字符及其含义
符号意义
?匹配0个或1个?之前的那个普通字符
+匹配1个或多个+号之前的那个普通字符
()表示一个字符集合与|搭配使用
|表示或,匹配一组可选的字符,搭配()使用

示例

  • ?号:匹配?之前的那个字符0次或1次
hel?0	#匹配l 0次或1次 即匹配helo、hello
  • +号:匹配+号之前的那个字符1次或多次。与*不同的是 *号可以匹配0次,+号至少匹配1次
s+eu	#匹配s一次或多次,sseu ssseu sssseu
  • ()号 | 号:匹配一组可选择字符
a(a|b|c)c	#匹配()中的a、b、c任意一个。可以匹配aac、abc、ac
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值