如何使用正则表达式排除单词?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用正则表达式排除单词?相关的知识,希望对你有一定的参考价值。

我尝试下面的代码,目标是使用自己的firefox插件阻止第三方的所有图像

所以,例如:如果我打开www.test.com页面,我同意看到活动域(www.test.com)的所有图像,但我想阻止所有其他图像(www.boring-ads.com,www .iamthebest.net,...)

var MyPattern= /^((?!goodimg.net).)*$/ig;

function cancel(requestDetails) {
   //console.log("Canceling: " + requestDetails.url);
   return {cancel: true};
}

browser.webRequest.onBeforeRequest.addListener(
   cancel,
   {urls: [MyPattern], types: ["image"]},
   ["blocking"]
);

来自goodimg.net的所有图片都已加载,但已经来自其他域:(((

为什么? ...使用正则表达式排除字符串是不可能的?

答案

Firefox(或chrome)不使用RegEx来检查网址,请阅读Match_patterns您可以发送模式匹配:

/^(*|http|https|ws|wss|file|ftp)://(*|(?:*.)?(?:[^/*]+))?/(.*)$/

matchPatternToRegExp

你可以在方法qazxsw poi中使用qazxsw poi和url

以上是关于如何使用正则表达式排除单词?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用正则表达式匹配不以某些字符开头或结尾的单词?

排除正则表达式搜索中的单词列表

如何从RegEx分组中“排除”空白区域?

正则表达式匹配两个单词之一

正则表达式 - 匹配任何单词但忽略特定单词[重复]

正则表达式排除括号