gpt4 book ai didi

javascript - 正则表达式查找不带扩展名的文件名,包括 tar.gz 等异常(exception)情况

转载 作者:行者123 更新时间:2023-12-02 21:47:18 25 4
gpt4 key购买 nike

我正在尝试从 URL 解析文件名(例如 .tar.gz 或 .zip)。例如,

*URL:* https://files.pythonhosted.org/packages/00/51/f3afa784d73d1f35dce99f6138eaa779e2098a8dde4e7085ecf6295254bb/google-cloud-storage-1.13.0.tar.gz

*Desired Output:* google-cloud-storage-1.13.0

*URL:* https://files.pythonhosted.org/packages/00/51/f3afa784d73d1f35dce99f6138eaa779e2098a8dde4e7085ecf6295254bb/google-cloud-storage-1.13.0.zip

*Desired Output:* google-cloud-storage-1.13.0

到目前为止,使用 Javascript 我有以下内容:

tar_name = url.split('/').pop().replace(/\..+$/, '');

当文件名中包含点时,这不起作用。

任何有关如何使用 javascript 从此类 url 获取文件名的帮助都将受到高度赞赏。谢谢。

最佳答案

一种选择是具体化,并将以 .tar.gz.zip 结尾的部分替换为空字符串。

(?:\.tar\.gz|\.zip)$

Regex demo

["https://files.pythonhosted.org/packages/00/51/f3afa784d73d1f35dce99f6138eaa779e2098a8dde4e7085ecf6295254bb/google-cloud-storage-1.13.0.tar.gz",
"https://files.pythonhosted.org/packages/00/51/f3afa784d73d1f35dce99f6138eaa779e2098a8dde4e7085ecf6295254bb/google-cloud-storage-1.13.0.zip"
].forEach(url => {
url = url.split('/').pop().replace(/(?:\.tar\.gz|\.zip)$/, '');
console.log(url);
});

或者,您可以捕获末尾用点分隔的数字,并匹配后面的字符 a-z,将组 1 保留在替换中。

(\d+(?:\.\d+)+)\.[a-z]+(?:\.[a-z]+)*$

Regex demo

["https://files.pythonhosted.org/packages/00/51/f3afa784d73d1f35dce99f6138eaa779e2098a8dde4e7085ecf6295254bb/google-cloud-storage-1.13.0.tar.gz",
"https://files.pythonhosted.org/packages/00/51/f3afa784d73d1f35dce99f6138eaa779e2098a8dde4e7085ecf6295254bb/google-cloud-storage-1.13.0.zip"
].forEach(url => {
url = url.split('/').pop().replace(/(\d+(?:\.\d+)+)\.[a-z]+(?:\.[a-z]+)*$/, "$1");
console.log(url);
});

关于javascript - 正则表达式查找不带扩展名的文件名,包括 tar.gz 等异常(exception)情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60222264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com