java - 如何从文件名中提取日期部分?

标签 java regex

我需要找到一个正则表达式来从多个文件的名称中提取日期部分。

特别是我有这两种格式:

  • ATC0200720140828080610.xls
  • ATC0200720140901080346_UFF_ACC.xls

我使用这两个正则表达式来检查文件名格式:

  • ^ATC02007[0-9]{14}.xls$
  • ^ATC02007[0-9]{14}_UFF_ACC.xls$

但我需要一个正则表达式来提取特定部分:

constant | yyyyMMddHHmmss |   constant
    ^            ^               ^
ATC02007 | 20140901080346 | _UFF_ACC.xls

我使用的两个正则表达式都匹配整个文件名,因此我无法使用它来提取中间部分,那么哪个是正确的表达式?

最佳答案

你就快到了。只需使用圆括号来包含您想要的数字。

^ATC02007([0-9]{14})(_UFF_ACC)?.xls$

参见example 。这些数字在组 1$1 中捕获。

关于java - 如何从文件名中提取日期部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25935749/

相关文章:

java - 解析 XML 并替换来自不同数据源的值

java - 如何编写数据访问的单元测试?

java - 关于 Java 接口(interface)和多态性

php - Perl 正则表达式模式在 php 中有效,但在 javascript 中无效?

regex - URL 编码文本与 htaccess QUERY_STRING 不匹配

javascript - 使用 Javascript 通过正则表达式解析文件并将信息转换为 json

java - double 和 float 据类型的行为

java - 在 nestedscrollview 中检查 recyclerview 滚动状态

regex - 无法使用 perl 和正则表达式将模式匹配保存在数组中

php - 正则表达式:如何在 "@"符号之前删除电子邮件?