正则表达式匹配S3文件和目录

时间:2013-09-06 06:04:46

标签: java regex

我有以下用于匹配S3网址

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

匹配

s3://bucket/path/key

但与目录不匹配

s3://bucket/path/directory/

是否有一种简单的方法可以更改pattern以匹配目录?

2 个答案:

答案 0 :(得分:2)

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

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

regex101 demo

答案 1 :(得分:0)

这在JS中效果很好,但我猜也将适用于所有支持RegEx的语言。有人可能希望将其用作示例路径,例如

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

^s3:\/\/([^/]+)\/([\w\W]+)\.(.*)