匹配模式Google URL

时间:2015-05-03 21:26:22

标签: url google-chrome-extension pattern-matching

我想为我的Chrome扩展程序创建一个模式,其中包含带有自定义模式的Google(.com,.de,.fr,.en,...)的所有网站。这里有一个例子:

https://www.google.com/*/exclude_all_of_the_following

http://www.google.co.ck/*/exclude_all_of_the_following

所以我创建了一个模式,但它不起作用:

*://*.google.???/*

但我的模式并不理解带有2个字符的网址,例如" .de",我认为它仅适用于包含3个字符的网址,例如" .com&#34 ;

而且我不知道如何排除我想要排除的内容。

我在google site match pattern上搜索,但并不是所有的例子都是我想做的事情。

有人可以帮助我吗?只是为了澄清,我不是在寻找一个正则表达式。我正在寻找一个匹配模式的glob,您可以在我上面发布的链接中找到更多信息。

2 个答案:

答案 0 :(得分:2)

查看match patterns的文档后,我不完全确定这是否可行?似乎允许使用的不同模式非常有限。 :(如果有人发现更多请发布。

回答正则表达式(不是OP正在寻找的)

不幸的是,对于语言,您只需要考虑可能使用的不同语言。您可以制作通用正则表达式,但不支持的语言将通过。如果有人有更好的解决方案,请发布!这就是我刚刚掀起的。

/http(s?):\/\/(www?).google.(com|ad|ae|com.af|com.ag|com.ai|al|am|co.ao|com.ar|as|at|com.au|az|ba|com.bd|be|bf|bg|com.bh|bi|bj|com.bn|com.bo|com.br|bs|bt|co.bw|by|com.bz|ca|cd|cf|cg|ch|ci|co.ck|cl|cm|cn|com.co|co.cr|com.cu|cv|com.cy|cz|de|dj|dk|dm|com.do|dz|com.ec|ee|com.eg|es|com.et|fi|com.fj|fm|fr|ga|ge|gg|com.gh|com.gi|gl|gm|gp|gr|com.gt|gy|com.hk|hn|hr|ht|hu|co.id|ie|co.il|im|co.in|iq|is|it|je|com.jm|jo|co.jp|co.ke|com.kh|ki|kg|co.kr|com.kw|kz|la|com.lb|li|lk|co.ls|lt|lu|lv|com.ly|co.ma|md|me|mg|mk|ml|com.mm|mn|ms|com.mt|mu|mv|mw|com.mx|com.my|co.mz|com.na|com.nf|com.ng|com.ni|ne|nl|no|com.np|nr|nu|co.nz|com.om|com.pa|com.pe|com.pg|com.ph|com.pk|pl|pn|com.pr|ps|pt|com.py|com.qa|ro|ru|rw|com.sa|com.sb|sc|se|com.sg|sh|si|sk|com.sl|sn|so|sm|sr|st|com.sv|td|tg|co.th|com.tj|tk|tl|tm|tn|to|com.tr|tt|com.tw|co.tz|com.ua|co.ug|co.uk|com.uy|co.uz|com.vc|co.ve|vg|co.vi|com.vn|vu|ws|rs|co.za|co.zm|co.zw|cat)\/*/

如果您想知道我是如何获得所有这些内容的,我会查看您发布的链接(google.com/supported_domains),将其作为字符串复制到控制台中,然后只返回.split(' .google.')数组中的所有语言。

然后,我获取了该数组的结果并执行了reduce

splitLanguages.reduce(function(a,b) { return a + '|' + b; });

我已经放入正则表达式的结果字符串。随意使用.test以确保它正常工作。如果有人有更好的解决方案,请发表评论。

如果你想要一个更通用的正则表达式,@ keune有正确的想法,但就像我说的那样,不存在的语言将会通过,而这可能是也可能不是你所追求的。

答案 1 :(得分:0)

aug的答案很好。但是它有很多错误。句号(。)尚未转义。 '?'应该在捕获组之外。而不是最后的星号,应该有“。*”。我将正则表达式调整为:

/http(s)?:\/\/(www\.)?google\.(com|ad|ae|com.af|com.ag|com.ai|al|am|co.ao|com.ar|as|at|com.au|az|ba|com.bd|be|bf|bg|com.bh|bi|bj|com.bn|com.bo|com.br|bs|bt|co.bw|by|com.bz|ca|cd|cf|cg|ch|ci|co.ck|cl|cm|cn|com.co|co.cr|com.cu|cv|com.cy|cz|de|dj|dk|dm|com.do|dz|com.ec|ee|com.eg|es|com.et|fi|com.fj|fm|fr|ga|ge|gg|com.gh|com.gi|gl|gm|gp|gr|com.gt|gy|com.hk|hn|hr|ht|hu|co.id|ie|co.il|im|co.in|iq|is|it|je|com.jm|jo|co.jp|co.ke|com.kh|ki|kg|co.kr|com.kw|kz|la|com.lb|li|lk|co.ls|lt|lu|lv|com.ly|co.ma|md|me|mg|mk|ml|com.mm|mn|ms|com.mt|mu|mv|mw|com.mx|com.my|co.mz|com.na|com.nf|com.ng|com.ni|ne|nl|no|com.np|nr|nu|co.nz|com.om|com.pa|com.pe|com.pg|com.ph|com.pk|pl|pn|com.pr|ps|pt|com.py|com.qa|ro|ru|rw|com.sa|com.sb|sc|se|com.sg|sh|si|sk|com.sl|sn|so|sm|sr|st|com.sv|td|tg|co.th|com.tj|tk|tl|tm|tn|to|com.tr|tt|com.tw|co.tz|com.ua|co.ug|co.uk|com.uy|co.uz|com.vc|co.ve|vg|co.vi|com.vn|vu|ws|rs|co.za|co.zm|co.zw|cat)\/.*/

据我所知,此代码适用于所有Google网址。 我的声誉低于50,因此无法在答案中对此发表评论。