正则表达式笔记

\w:匹配字母、数字、下划线。等价于[A-Za-z0-9_]
\W:不匹配非字母、数字、下划线。等价于 [^A-Za-z0-9_]

\d:匹配一个数字字符。等价于 [0-9]
\D:匹配一个数字字符。等价于 [^0-9]

\S:匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\s:	匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]
例1:echo "i am a boy" | grep 'a\sboy'		#匹配a boy
例2:echo "i am a boy" | grep '\S'			#匹配所有费空白

\b:匹配一个单词边界,也就是指单词和空格间的位置。
例1:echo "i am a boy" | grep '\bam\b'   	#只匹配am
例2:echo "i am a boy" | grep 'a\s\bboy\b'	#匹配a boy
例3:echo "i am a boy" | grep '\bam\b'		#精确只匹配am

. 匹配任意一个字符,除了换行符\n
例:echo "code"|grep 'c..e'
? 匹配前面的子表达式零次或一次
例:echo "coe"|grep 'cod?e'					#coe和code都可以匹配上
+ 匹配前面的子表达式一次或多次(至少一次)
.? 匹配前面任意一个字符有没有都可以

筛选
(要匹配的内容)
(?!筛选出去的内容)
例1:123456789@qq.com 获取到是什么邮箱
(qq)	#获取到的就是qq
例2:获取除了qq邮箱以外的邮箱
123456789@qq.com 
123456789163.com
@(?!qq).+	#获取到了163邮箱

后行断言
获取以X开始,不以Z结尾的字符串(?<=X)(?=Z)
例1:iloveyou匹配love
(?<=i)love(?=you)
(?<=i)love
(?<=i)\S+
反向后行断言
获取不以X开始,不以Z结尾的字符串(?<!X)(?!Z)
例1:iloveyou匹配love
(?<!i)love(?!you)
(?<!i)love
(?<!i)\S+
例2:$ a = a^2 $ 匹配以1个$符号开头和结尾的数据
(?<!\$)\${1}[^\$]+\${1}(?!\$)
#解释:
一、\${1}[^\$]+\${1}匹配   $开始   任何数据   $结尾
二、(?<!\$)\${1} 1个$前面没有$
三、\${1}(?!\$)  1个$后面没有$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sh13661847134

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值