3

我有以下用于匹配S3URL的模式

Pattern.compile("^s3://([^/]+)/(.*?([^/]+))$");

这匹配

s3://bucket/path/key

但不匹配目录

s3://bucket/path/directory/

有没有一种简单的方法来更改pattern以匹配目录?

4

2 回答 2

3

正则表达式中只缺少最后一个斜杠。你可以试试这个:

^s3://([^/]+)/(.*?([^/]+)/?)$
                         ^^

正则表达式 101 演示

于 2013-09-06T06:06:57.710 回答
0

这在 JS 中工作得很好,但我猜也适用于所有支持 RegEx 的语言。有人可能想将它用于示例路径,就像这样

s3://bucket_name/folder1/folder2/file1.json

^s3:\/\/([^/]+)\/([\w\W]+)\.(.*)
于 2019-07-01T14:31:15.983 回答