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

Python 正则表达式:替换以';结尾的字符串的后缀;。js';但不是';min.js';,python,regex,Python,Regex,假设infle是一个包含输入文件名的变量,类似地,outfile是一个包含输出文件名的变量。如果infle以.js结尾,我想替换为.min.js,这很简单(我想) outfile=re.sub(r'\b.js$,'.min.js',infle) 但我的问题是,如果infle以.min.js结尾,那么我不希望替换发生。(否则,我将得到.min.min.js)如何使用正则表达式实现这一点 这不是家庭作业。如果您想知道这是为了什么:这是一个小型python脚本,用于对目录中的JavaScript文件进

假设infle是一个包含输入文件名的变量,类似地,outfile是一个包含输出文件名的变量。如果infle以.js结尾,我想替换为.min.js,这很简单(我想)

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

但我的问题是,如果infle以.min.js结尾,那么我不希望替换发生。(否则,我将得到.min.min.js)如何使用正则表达式实现这一点


这不是家庭作业。如果您想知道这是为了什么:这是一个小型python脚本,用于对目录中的JavaScript文件进行大规模压缩。

您希望执行一个反向查找断言。比如说,

outfile = re.sub(r"(?<!\.min)\.js$", ".min.js", infile)

outfile=re.sub(r)(?对于如此简单的任务,不需要正则表达式。字符串方法可以更具可读性,例如:

if filename.endswith('.js') and not filename.endswith('.min.js'):
    filename= filename[:-3]+'.min.js'

这正是我要说的。是的,我知道,但这个问题为我提供了一个很好的机会来学习更多关于正则表达式的知识。