如何从以下文件路径中提取不带扩展名的文件名:
D:\Projects\Extract\downtown - second.pdf
以下正则表达式为我提供了带扩展名的文件名:[^\\]*$
例如市中心 - second.pdf
以下正则表达式为我提供了不带扩展名的文件名:(.+)(?=(\.))
例如D:\Projects\Extract\downtown - 第二个
我正在努力将两者组合成一个正则表达式来给我想要的结果:市中心 - 第二
最佳答案
我怀疑您的第二个正则表达式不会给您显示的输出。它会给你完整的字符串,直到第一个 period (.)
。
要仅获取不带扩展名的文件名,您可以使用此正则表达式:-
[^\\]*(?=[.][a-zA-Z]+$)
我刚刚将第二个正则表达式中的 (.+)
替换为第一个正则表达式中的 [^\\]*
,并添加了匹配 的模式pdf
到最后。
现在这个模式将匹配 0 次或多次
重复的任何字符,除了 backslash(\)
,后跟 .
,然后是 1 个或多个
重复的字母构成扩展。
关于regex - 正则表达式从完整文件路径获取不带扩展名的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14815105/