【问题标题】:Regex for filename in path - macos路径中文件名的正则表达式 - macos
【发布时间】:2018-12-07 18:48:46
【问题描述】:

我正在尝试使用以下代码行读取我的下载文件夹中的文件(我有一个 mac 系统):

    PDDocument doc = PDDocument.load(new File("/Users/mohand/Downloads/1963_Automation_BigTurnip_290618.pdf"));

问题是,数字“1963”会不断变化,但文本“_Automation_BigTurnip_290618.pdf”将保持不变。

我可以使用任何正则表达式来获取任何具有“_Automation_BigTurnip_290618.pdf”的文件吗?

【问题讨论】:

标签: java regex filepath


【解决方案1】:

我是这样做的:

File dir = new File("/Users/mohand/Downloads/");
File[] files = dir.listFiles((dir1, name) ->  name.endsWith("Automation_BigTurnip_290618.pdf"));

【讨论】:

    【解决方案2】:

    不需要正则表达式。只需使用endsWith

    if (name.endsWith("_Automation_BigTurnip_290618.pdf"))
    

    【讨论】:

    • 如何在我的路径名中使用它?
    • @moh17 您的问题是如何使用正则表达式模式来匹配文件名。我建议不要为此使用正则表达式。如果您真的想询问如何扫描目录中的文件,那么您应该编辑问题并澄清这是您需要知道的。这个答案是针对当前编写的问题,即只是关于名称匹配。
    【解决方案3】:

    你可以使用这样的正则表达式:

    ^(\d+)_Automation_BigTurnip_290618\.pdf$
    

    这将匹配任何以至少一位数字开头并以您指定的模式结尾的文件。

    【讨论】:

    • 如何在 OP 中给出的路径名中使用它?
    • @moh17 OP 中给出的路径名是硬编码字符串,所以不需要正则表达式。你的问题没有意义。
    猜你喜欢
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多