php - 如何使用正则表达式拆分文件扩展名

标签 php regex

如何使用正则表达式从 asddhj123.png.png 拆分为 123.png

我试过下面的正则表达式,但第一个扩展仍然涉及 :(

 /[a-zA-z.]|\.(jpg|png)$/

我希望它会回来:

asdasd123.jpg.jpg => 123.jpg

dsds345.png.png => 345.png

最佳答案

此表达式可能会返回所需的输出:

(?i)\d+\.(?:jpe?g|png)

If you wish to explore/simplify/modify the expression, it's been explained on the top right panel of regex101.com. If you'd like, you can also watch in this link, how it would match against some sample inputs.


const regex = /\d+\.(?:jpe?g|png)/gmi;
const str = `asdasd123.jpg.jpg => 123.jpg
asdasd123.jpeg.jpeg => 123.jpeg
dsds345.png.png => 345.png

`;
let m;

while ((m = regex.exec(str)) !== null) {
	if (m.index === regex.lastIndex) {
		regex.lastIndex++;
	}

	m.forEach((match, groupIndex) => {
		console.log(match);
	});
}

关于php - 如何使用正则表达式拆分文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57567288/

相关文章:

regex - Sed - 替换每行最后出现的匹配项

php - Doctrine2 Multiple Join 适用于 createQuery 但不适用于 queryBuilder

python - 如何使用 Python 使用正则表达式从 Word 文档中提取问题

php - 为什么我会收到 PHP fatal error : Uncaught Error: Class 'MyClass' not found?

php - 多表 SQL 字符串不起作用

java - 匹配成绩的正则表达式

javascript - 正则表达式匹配具有不同数字和最小长度的数字

java - 使用 [a-z] 正则表达式在 Java 中拆分字符串

javascript - 抓取javascript生成的网页数据

php - 损坏图像链接的图像占位符?