Regex Scala正则表达式捕获单独的组
我需要分别捕获3组。 例如: s3://some/path/TIMESTAMP/part-1234.parquet |-----g1---------g2---------g3---------| 其中g3是文件名,g2是时间戳,g1是时间戳之前的任何内容 我想出了使用scala捕获两个组:Regex Scala正则表达式捕获单独的组,regex,scala,regex-group,Regex,Scala,Regex Group,我需要分别捕获3组。 例如: s3://some/path/TIMESTAMP/part-1234.parquet |-----g1---------g2---------g3---------| 其中g3是文件名,g2是时间戳,g1是时间戳之前的任何内容 我想出了使用scala捕获两个组: val pattern = "(.*?)(part.*.parquet)$".r val pattern(fileBasePath, filename) = row.file_path
val pattern = "(.*?)(part.*.parquet)$".r
val pattern(fileBasePath, filename) = row.file_path
我要找的是这样的东西:
val pattern(fileBasePath, timestamp, filename) = row.file_path
上面的模式是什么样子的?您可以使用
val pattern=“”^(.*?/([^/]+)/(part.*\.parquet)$”。r
看
细节
-字符串的开头^
-第1组:除换行符以外的任何零个或多个字符,尽可能少(.*)
-a/
字符/
-第2组:除([^/]+)
/
-a/
字符/
-第3组:(part.*\.parquet)
,除换行符以外的任何零个或多个字符,尽可能多,然后是part
子串.parquet
-字符串结束$