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

rak*_*shr 3 java regex

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

Pattern.compile("^s3://([^/]+)/(.*?([^/]+))$");
Run Code Online (Sandbox Code Playgroud)

这匹配

s3://bucket/path/key
Run Code Online (Sandbox Code Playgroud)

但不匹配目录

s3://bucket/path/directory/
Run Code Online (Sandbox Code Playgroud)

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

Jer*_*rry 6

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

^s3://([^/]+)/(.*?([^/]+)/?)$
                         ^^
Run Code Online (Sandbox Code Playgroud)

正则表达式101演示