0

我有一个模式如下:

文档数据/文件名.xyz

我正在尝试编写一个只会返回“文件名”的正则表达式。我有一个只给我“xyz”,它可以工作,我有一个给我“Filename.xyz”,但我很难切断xyz来获取文件名。

[^/]+$给我"Filename.xyz" \[^.]+$给我xyz

我不是正则表达式的人,所以任何帮助都会很棒!谢谢!

4

3 回答 3

1

尝试使用前瞻(?=...)

/[^\/.]+(?=\.[^.]+$)/

前瞻仅执行检查,并表示后面不匹配但不匹配。

于 2013-08-23T14:10:25.183 回答
0

将两者结合起来并将第一部分包装在一个捕获组中:

"document_data/Filename.xyz".match(/([^/]+)\.[^.]+$/)[1]
于 2013-08-23T14:11:33.030 回答
0

我希望它可以帮助(参见:http ://planetozh.com/blog/2008/04/javascript-basename-and-dirname/ )

    function basename(path) {
        return path.replace(/\\/g,'/').replace( /.*\//, '' ).replace( /\..*/, '' );
    }
于 2013-08-23T14:14:46.123 回答