我有一个模式如下:
文档数据/文件名.xyz
我正在尝试编写一个只会返回“文件名”的正则表达式。我有一个只给我“xyz”,它可以工作,我有一个给我“Filename.xyz”,但我很难切断xyz来获取文件名。
[^/]+$
给我"Filename.xyz"
\[^.]+$
给我xyz
我不是正则表达式的人,所以任何帮助都会很棒!谢谢!
我有一个模式如下:
文档数据/文件名.xyz
我正在尝试编写一个只会返回“文件名”的正则表达式。我有一个只给我“xyz”,它可以工作,我有一个给我“Filename.xyz”,但我很难切断xyz来获取文件名。
[^/]+$
给我"Filename.xyz"
\[^.]+$
给我xyz
我不是正则表达式的人,所以任何帮助都会很棒!谢谢!
尝试使用前瞻(?=...)
:
/[^\/.]+(?=\.[^.]+$)/
前瞻仅执行检查,并表示后面不匹配但不匹配。
将两者结合起来并将第一部分包装在一个捕获组中:
"document_data/Filename.xyz".match(/([^/]+)\.[^.]+$/)[1]
我希望它可以帮助(参见:http ://planetozh.com/blog/2008/04/javascript-basename-and-dirname/ )
function basename(path) {
return path.replace(/\\/g,'/').replace( /.*\//, '' ).replace( /\..*/, '' );
}