正则表达式中不包含字符串的否定描述

什么是否定的先读

?!通过将以括号()括起来的正则表达式以不包含指定字符串(负预读)为条件进行匹配。另外,也可以在否定预读的前后连接其他模式来描述。

使用否定预读的例子

在下面的例子中,否定的前置词(?!通过在~)前后连接表示句头的^和表示句尾的$来搜索行。

不含〜

与不包含字符串“abc”的行匹配。

^(?!.*abc).*$

不包含〜或〜

匹配不包含“abc”或“efg”字符串的行。

^(?!.*(abc|efg)).*$

如果要增加条件,请添加每个单词以|分隔。

不是从〜开始的

匹配以字符串“abc”开头的行。

^(?!abc).*$

〜で終わらない

匹配以字符串“abc”结尾的行。

^(?!.*abc$).*$

包含〜但不包含~

与包含“abc”但不包含“def”的行匹配。

^(?=.*abc)(?!.*def).*$

?=表示肯定前读。

总结

使用否定条件可使搜索范围之外的匹配成为可能。此外,通过添加|或()分隔条件,可以进一步缩小搜索范围。利用否定正则表达式进行更有效的搜索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值