正则表达式:替换以'.js'结尾但不是'min.js'的字符串的后缀

Kev*_*nle 3 python regex

假设infile是一个包含输入文件名称的变量,同样也是输出文件的outfile.如果infile以.js结尾,我想用.min.js替换,这很容易(我认为).

outfile = re.sub(r'\ b.js $','.min.js',infile)

但我的问题是,如果infile以.min.js结尾,那么我不希望替换发生.(否则,我最终将使用.min.min.js)如何使用正则表达式实现此目的?

PS:这不是功课.如果你很好奇这是为了什么:这是一个小的python脚本来对目录中的JavaScript文件进行大规模压缩.

Eva*_*ark 9

你想做一个负面的lookbehind断言.例如,

outfile = re.sub(r"(?<!\.min)\.js$", ".min.js", infile)
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到更多相关信息:http://docs.python.org/library/re.html#regular-expression-syntax