我正在构建Chrome扩展程序,因为Chrome中的bug会导致exclude_matches
失败,因此我遇到了问题。我知道有一些方法可以使用程序化注入来绕过它,但是这会导致一些性能问题,所以我想知道是否有人能想到某种方式来重写我的include_matches
以不包括我想要排除的东西(因为任何不匹配的东西会被自动排除)。这是一个很长的镜头,但我想如果有人能做到,他们就会在这里!可以使用的示例是以下代码:
{
....
"content_scripts": [{
"matches": [ "http://example.com/*" , "http://*.example.com/*" ]
}]
....
}
显然上面涵盖example.com
上的任何链接,但我想知道是否有办法以URL example.com/z/
不符合规则的方式重写它,但是像example.com/z/s/
这样的网址仍然可以使用。
基本上唯一不允许的URL是上面格式的一个(“/z/
”),所以我想知道是否有一种方法可以指定不允许在该位置使用斜杠的URL。听起来很愚蠢,我认为我过多地考虑了正则表达式,所以任何帮助都会受到赞赏!
即使我打字,我觉得我可能会被PI困住,但值得一试!
答案 0 :(得分:1)
不幸的是,谷歌的"Match patterns and globs"并不总是像人们预期的那样运作。特别是,使用?
通配符。您认为可以将http://example.com/?*
用作it's supposed to match "any single character" (and not an empty string)。
无论如何,这有点像黑客,但你可以使用至少 26 include_globs
规则,如下:
{
....
"content_scripts": [ {
"matches": [ "http://example.com/*",
"http://*.example.com/*"
],
"include_globs":[ "*example.com/z/a*",
"*example.com/z/b*",
"*example.com/z/c*",
"*example.com/z/d*",
// Etc., etc.
"*example.com/z/x*",
"*example.com/z/y*",
"*example.com/z/z*"
]
} ]
....
}
唉,这些规则区分大小写,因此根据站点/服务器的不同,您可能需要复制大写和国际字符的规则。