我的模式如下:
document_data / Filename.xyz
我正在尝试编写一个只返回“Filename”的正则表达式。我有一个只给我“xyz”并且它可以工作,我有一个给我“Filename.xyz”,但我很难切断xyz只是获取文件名。
[^/]+$
给了我"Filename.xyz"
\[^.]+$
给了我xyz
我不是一个正则表达式的人,所以任何帮助都会很棒!谢谢!
答案 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( /\..*/, '' );
}