gpt4 book ai didi

regex - 我如何在scala中选择具有指定模式的文件名

转载 作者:行者123 更新时间:2023-12-05 06:49:08 26 4
gpt4 key购买 nike

OTC_omega_20210302.csv
CH_delta_20210302.csv
MD_omega_20210310.csv
CD_delta_20210310.csv

val hdfsPath = "/development/staging/abcd-efgh"
val fs = org.apache.hadoop.fs.FileSystem.get(spark.sparkContext.hadoopConfiguration)

val files = fs.listStatus(new Path(s"${hdfsPath}")).filterNot(_.isDirectory).map(_.getPath)
val regX = "OTC_*[0-9].csv|CH_*[0-9].csv".stripMargin.r
val filteredFiles = files.filter(fName => regX.findFirstMatchIn(fName.getName).isDefined)

如果我需要任何以(OTC_ 或 CH_)开头并以 YYYYMMDD.csv 结尾的文件名,我需要提供什么正则表达式?

根据上述文件,我需要两个输出OTC_omega_20210302.csvCH_delta_20210302.csv

请帮忙

最佳答案

你可以使用

val regX = "^(?:OTC|CH)_.*[0-9]{8}\\.csv$".r
val regX = """^(?:OTC|CH)_.*[0-9]{8}\.csv$""".r

参见 regex demo .

详细信息:

  • ^ - 字符串的开始
  • (?:OTC|CH) - non-capturing group匹配 OTCCH 字符序列
  • _ - _ 字符
  • .* - 除换行字符外的任何零个或多个字符,尽可能多
  • [0-9]{8} - 八位数字
  • \. - 文字点(注意 . 匹配换行符以外的任何字符,您必须转义 使其匹配一个点)
  • csv - csv 字符串
  • $ - 字符串结尾。

关于regex - 我如何在scala中选择具有指定模式的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66642496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com