Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Scala正则表达式捕获单独的组_Regex_Scala_Regex Group - Fatal编程技术网

Regex 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

我需要分别捕获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(fileBasePath, timestamp, filename) = row.file_path
上面的模式是什么样子的?

您可以使用

val pattern=“”^(.*?/([^/]+)/(part.*\.parquet)$”。r

细节

  • ^
    -字符串的开头
  • (.*)
    -第1组:除换行符以外的任何零个或多个字符,尽可能少
  • /
    -a
    /
    字符
  • ([^/]+)
    -第2组:除
    /
  • /
    -a
    /
    字符
  • (part.*\.parquet)
    -第3组:
    part
    ,除换行符以外的任何零个或多个字符,尽可能多,然后是
    .parquet
    子串
  • $
    -字符串结束

是的,那就行了。请把它贴出来作为答复,我会接受的