使用环视查找模式的最后一次出现

问题描述 投票:0回答:1

我有路径

../dir1/dir2/dir3/filename.txt
并且想使用正则表达式提取最终
filename
\
之间的
.
。文件扩展名也不总是
.txt

目前我正在做

(?<=\/).+(?=\.)
,但从第一个
\
中选择,包括目录名称。我希望这只是基于匹配而不是使用组。哦,如果这很重要,请使用 ECMA 正则表达式。

javascript regex regex-lookarounds
1个回答
0
投票

您可以尝试使用正则表达式

[^\/]+(?=\.[^.]+$)
,通过排除路径并捕获文件名中最后一个点 (.) 之前的文本来匹配文件名。

const filePath = '../dir1/dir2/dir3/filename.txt';
const filename = filePath.match(/[^\/]+(?=\.[^.]+$)/);
console.log(filename[0]); // Output: filename

© www.soinside.com 2019 - 2024. All rights reserved.