例如从下面三个字符串中查找不包含my的hello world:
hello_your_world
hello_my_world
hello_his_world
要匹配不包含my的字符串,可以用hello((?!my).)*world,使用sublime text测试如下:
![05203421-187cee229e234574ac2bc7d1ca8d2e7c.png](https://i-blog.csdnimg.cn/blog_migrate/63159b805b51f38e032edefb77ee00b1.png)
解释:
hello:包含hello
( :分组开始
(?!my) :使用否定式前瞻,表示从hello开始后面不能有my,注意这里的前瞻指的是在.后面检查,因为正则引擎是从文件头向文件尾查找,文件尾部方向才是前
.) :hello后面可以有一个任意字符
* :匹配上面的任意字符0个或无限个。
world:匹配world
注意不能写成
hello(.(?!my))*world,因为这样会忽略hello后面接my的情况:
![05203424-c3da2c5577344403898e724ab2d4c215.png](https://i-blog.csdnimg.cn/blog_migrate/11c42a1674e6c9d889a7a1d396c2f1d1.png)