regex - 正则表达式从完整文件路径获取不带扩展名的文件名

标签 regex

如何从以下文件路径中提取不带扩展名的文件名:

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/

相关文章:

Java:正则表达式替换字符串

php - 用于描述表单输入的正则表达式

mac地址上的Javascript正则表达式

java - 将一个或两个日期的字符串转换为正确数量的 Java 日期实例

javascript - 基于 "&"拆分字符串(url params 字符串),同时允许 & 在参数值内

javascript - 检查是否为空

c# - 从货币字符串中获取负小数

Python 正则表达式 : Question mark (? ) 与字符串中间不匹配

javascript - 要检查的正则表达式仅包含

php - 如何使用正则表达式和 php 向特定单词添加附加标签