PHP preg_replace 没有以问号开头的图像扩展?

PHP preg_replace image extensions that aren't proceeded by a question mark?

我需要使用 preg_replace 在图像路径上附加一个查询字符串以用于清除缓存。

目前我正在使用以下内容,但是它没有考虑图像扩展已经有查询字符串的边缘情况。

$html = preg_replace('/\.(jpg|png|gif|jpeg)/i', '.?v=1', $html);

如何排除后跟问号的匹配项?

非常感谢您的帮助。

我认为此页面可以帮助您解决这个问题。

https://javascript.info/regexp-lookahead-lookbehind

对于您的情况,请尝试此正则表达式:/\.(jpg|png|gif|jpeg)(?!\?)/i.