如何从名称包含日期的.txt文件中提取日期? (斯卡拉)

时间:2019-04-05 01:10:24

标签: regex scala apache-beam spotify-scio

我使用scala spotify scio将.txt文件作为我的光束编程项目的输入。

input= args.getOrElse("input", "/home/user/Downloads/trade-20181001.txt")

如何从文件名中提取日期2018-10-01(10月1日)?谢谢!

1 个答案:

答案 0 :(得分:1)

在上面的示例中,我将仅使用以下正则表达式。它会搜索以8个数字结尾,后跟.txt的任何内容。

(?<dateTime>\d{8})\.txt$

(?<dateTime> is the start of a named capture group.
\d{8} means exactly 8 digits.
) is the end of the named capture group.
\. means match the character . literally.
txt means match txt literally.
$ means that the string ends there and nothing comes after it.

如果您不能在程序中使用命名捕获组,则始终可以在不使用正则表达式的情况下使用它,并替换其中的.txt。

\d{8}\.txt$