使用正则表达式提取单词

时间:2013-08-23 14:06:37

标签: javascript regex

我的模式如下:

document_data / Filename.xyz

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

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

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

3 个答案:

答案 0 :(得分:1)

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

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

前瞻只执行检查,意味着后跟但不匹配。

答案 1 :(得分:0)

将两者合并并将第一部分包裹在捕获组中:

"document_data/Filename.xyz".match(/([^/]+)\.[^.]+$/)[1]

答案 2 :(得分:0)

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

    function basename(path) {
        return path.replace(/\\/g,'/').replace( /.*\//, '' ).replace( /\..*/, '' );
    }