gpt4 book ai didi

java - 模式和匹配器 : How to -- concatenate a pattern and a string for file search

转载 作者:行者123 更新时间:2023-12-01 15:27:18 26 4
gpt4 key购买 nike

因此,我使用 Java 中的 AWS 开发工具包,并创建了一个类来下载 S3 服务器中的存储桶/对象。

我现在需要的是创建一个类似通配符或模式的东西来附加一个名为(“reports”)的字符串。我唯一想到的就是创建一个模式匹配器变量,如下所示:

 Pattern p = Pattern.compile("[a-zA-Z][0-9]");
Matcher m = p.matcher(prePattern);

ObjectListing s3ObjectList = s3client.listObjects(new ListObjectsRequest()
.withBucketName(bucketName)
.withPrefix(m + "reports"));+

谁能告诉我是否有更好的解决方案来解决我正在尝试做的事情,或者我是否做得正确?

谢谢!

<小时/>

新代码:

      String bucketName = "blabla";
String prePattern = "^[a-z0-9_-]{1,30}$";
String prefixPat = " -- Insert Pattern Here -- ";
ArrayList<String> objPrefix = new ArrayList();

Pattern p = Pattern.compile(prePattern);
Matcher m = p.matcher(prefixPat);

for(int i=0; i<= objPrefix.size(); i++)
{
objPrefix.add(m + "reports");
ObjectListing s3ObjectList = s3client.listObjects(new ListObjectsRequest()
.withBucketName(bucketName)
.withPrefix(objPrefix.get(i)));

}

你们有什么想法吗?真的很感激。谢谢!

最佳答案

对 AWS 不太了解,但是 m + "reports" 代码片段正在调用 m.toString 并将其与文字“reports”连接起来。 Matcher 对象的 toString 通常没那么有用。

从这段代码:

Pattern p = Pattern.compile("[a-zA-Z][0-9]");
Matcher m = p.matcher("test");
System.out.println( m + "reports" );

我在 OS X 上得到这个:

 java.util.regex.Matcher[pattern=[a-zA-Z][0-9] region=0,4 lastmatch=]reports

可能不是您想要传递给 ObjectListing 的内容。

您需要将 m + 替换为对您的代码更有意义的内容。

关于java - 模式和匹配器 : How to -- concatenate a pattern and a string for file search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10003110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com