代码之家  ›  专栏  ›  技术社区  ›  ProfessorManhattan

将数组中不包含任何内容的所有内容与正则表达式匹配

  •  1
  • ProfessorManhattan  · 技术社区  · 6 年前

    我有以下regex查询,我正试图使用它来从缓存中排除资产:

    ^((?!(\.css|\.js|\.|\.json|\.xml|\.svg|\.ico|\.png|\.mp3|\.jpg|\.svg|\.woff|\.woff2|\.eot|\.ttf|\/api\/play\/add|\/api\/favorite|\/Listen\/channel|getAccountInfo)).)*$
    

    只是不匹配 https://exampl.com/home 不知为什么。有人知道我该怎么解决吗?还有,我能把正则表达式做得更好吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Wiktor Stribiżew    6 年前

    你的正则表达式包含 |\.| 部分(后) |\.js )这种替代方法会使regex与任何包含点的字符串匹配失败。您需要删除该备选方案:

    ^((?!(\.css|\.js|\.json|\.xml|\.svg|\.ico|\.png|\.mp3|\.jpg|\.svg|\.woff|\.woff2|\.eot|\.ttf|\/api\/play\/add|\/api\/favorite|\/Listen\/channel|getAccountInfo)).)*$
    

    regex demo