【问题标题】:Regex pattern for yesterday's date in format yyyymmdd昨天日期的正则表达式模式,格式为 yyyymmdd
【发布时间】:2011-03-23 11:13:34
【问题描述】:

我正在使用文件阅读器支持开发 Spring Integration 应用程序。我正在尝试使用正则表达式过滤器来获取所需的文件。该文件的名称类似于“S20110322.txt”,每天都有一个新文件,但具有相同的“S”前缀。我的应用程序将在创建文件后的第二天运行,以便捕获当天的所有数据。我可以使用匹配任何日期格式的正则表达式过滤器,但我特别需要正则表达式模式只匹配今天的日期少一天,因为应用程序将每天自动运行。

在 Java 方面,我可以使用 SimpleDateFormat 并编写 Java 代码来完成此操作,但我只是想看看是否可以在没有 Java 代码的情况下仅使用 Spring Integration 的 int-file:inbound-channel 来完成它-适配器。

【问题讨论】:

    标签: java regex spring date spring-integration


    【解决方案1】:

    如果您只需要匹配昨天的日期,我不明白为什么您需要正则表达式或过滤器 - 您知道您想要的 exact 文件,不要你?为什么不直接加载那个特定的文件?

    【讨论】:

    • 我尝试使用正则表达式过滤器的原因是因为 Spring Integration 配置位于 XML 文件中,而正则表达式过滤器是该 XML 文件中定义的 bean 属性。我很清楚我可以在 Java 中完成此操作,但只是想看看在 XML 中是否可以使用正确的正则表达式模式。谢谢。
    • @Patrick:你无法用普通(不变的)正则表达式表达“当前日期”的概念,不。
    • 谢谢乔恩。反正我不是正则表达式专家,所以我会写 Java 代码。反正最多也就几行。
    【解决方案2】:

    只需去掉 S 前缀并使用 DateFormat.parse()

    注意:您必须先将日期格式初始化为您自己的格式。

    编辑:很抱歉,我没有阅读您关于不想使用数据格式的最后一段

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多