如何匹配" .js"和" .css"但排除" .min.js"和" .min.css"?

时间:2015-02-25 19:51:00

标签: regex

我尝试了以下但没有成功:

\.(?!min)(js|css)$

Regex 101

我对负面的前瞻不太熟悉,所以我可能做错了。

如何修改我的正则表达式以匹配.js.css,但排除.min.js.min.css

2 个答案:

答案 0 :(得分:5)

除了

之外,你做得很对
  • 您需要将它放在点
  • 之前
  • 您需要使用lookbehind而不是lookahead
(?<!\.min)\.(js|css)$

前瞻这一点比较复杂,如果匹配完整的文件名,你可以管理它:

^(.{0,3}|.*(?!\.min).{4})\.(js|css)$

(一个短于4个字符的字符串或最后4个字符不是.min的字符串,这不是很可怕吗?)

答案 1 :(得分:4)

你需要使用负面的lookbehind:

(?<!\.min)\.(js|css)$

RegEx Demo