gpt4 book ai didi

java - Java 字符串中的通配符搜索

转载 作者:行者123 更新时间:2023-12-01 22:59:04 24 4
gpt4 key购买 nike

嗨,我有一个字符串列表..

List list = new ArrayList();
list.add("Test");
list.add("Test Test");
list.add("Test Second");

我想搜索像“Te*”这样的字符串..

我使用以下代码进行搜索

queryString = "Te*";
queryString = queryString.replaceAll("\\*", "\\\\w*");
for (String str : values) {
if (str.matches(queryStr) || str.contains(queryStr))
list.add(str);
}

这段代码仅返回“Test”..而不返回“Test Test”..

如果元素有空格,则此代码不起作用

最佳答案

这是因为您要将 * 替换为\w*,这意味着查找“单词字符”,直到可以为止,如 here 中所述。尝试替换它 .* 应该可以解决问题,你也可以摆脱那些丑陋的转义:)你也可以使用 java8 流 api 让它看起来更好,如下所示:

List<String> list = values.stream().filter( s -> s.matches(queryStr)).collect(Collectors.toList());

关于java - Java 字符串中的通配符搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23602045/

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