RegEx-Stylish-排除某些页面

时间:2019-04-07 08:58:29

标签: regex stylish

我正在尝试在用于浏览器的时尚插件上使用正则表达式来匹配网站。

此正则表达式需要匹配一个域(我们将其命名为website.com

这就是它的工作方式:

  • 允许的任何子域
  • http或https
  • website.com/team* =>不允许
  • website.com/forum* =>不允许
  • website.com * =>允许

从字面上看,它应该可以在网站的任何页面上使用,但.com失效后与/ team或/ forum的任何链接都无法使用。

我尝试过

((\w+)*\.\w{2,6})(\/)(?!team|forum)([^\s]+)

但是它不起作用,我也不知道如何使其仅与域website.com匹配

还有另一个问题,这种正则表达式适用于“时尚”吗?我在Google上找不到任何东西

3 个答案:

答案 0 :(得分:0)

\w{2,6}website不匹配,因为它包含7个字符。与空白字符不匹配的([^\s]+末尾的字符类可以使用*使用0+次的量词,也可以在没有尾随正斜杠的情况下进行匹配。

如果要匹配website.com,也可以匹配.com部分,否则[^\s]*将匹配其余的URL。

正斜杠应该是负前瞻的一部分,因为那是您不希望直接在右边的字符串。

您的模式可能如下:

\b(?:https?:\/\/)?(?:\w+\.)*website\.com(?!\/team|\/forum)\S*

这将匹配

  • \b(?:https?:\/\/)?单词边界,后跟可选的http(s)://
  • (?:\w+\.)*匹配0+次1+个单词字符,后跟一个点
  • website\.com匹配website.com
  • (?!\/team|\/forum)负向断言来断言直接在右边的不是/ team或/ forum
  • \S*匹配0+次非空格字符

Regex demo

答案 1 :(得分:0)

检查以下正则表达式,

(https?:\/\/)?(www.website.com)(\/)?(?!team|forum)(\w)*

点击here进行演示。在这里,您可以找到正则表达式的每个部分,以便您理解

此正则表达式已在以下测试用例上进行了测试

  1. www.website.com =允许
  2. https://www.website.com =允许
  3. http://www.website.com =允许https://www.website.com/team =不允许
  4. https://www.website.com/forum =不允许
  5. https://www.website.com/samplepage =允许

答案 2 :(得分:0)

<input type="hidden" name="FLC1" value="Floral Lavender Candle">