gpt4 book ai didi

java - 从字符串中提取特定匹配的子字符串

转载 作者:行者123 更新时间:2023-12-01 09:16:45 24 4
gpt4 key购买 nike

我有一个String和一个 List<String> 。我希望从 String 中提取内容我的List<String的内容包括前后两个字符。

我已经查看了 StackOverflow 中的示例。没有分隔符,没有表明匹配以任何形式划分的分界线。我已经使用正则表达式询问并审查了答案,并相信这可能是做到这一点的方法,但我的问题是怎样的。

如果我有String toParse = "Parse this to grab the &@ClaimNumber@& variable";和我的List<String>包含ClaimNumber ,有面向对象的解决方案吗?

最佳答案

下面的方法可以做到这一点,遵循 suggestion by CollinD ,此外还正确引用动态搜索值:

private static List<String> extract(String input, List<String> keywords) {
StringJoiner regex = new StringJoiner("|");
for (String keyword : keywords)
regex.add(".." + Pattern.quote(keyword) + "..");
List<String> result = new ArrayList<>();
for (Matcher m = Pattern.compile(regex.toString()).matcher(input); m.find(); )
result.add(m.group());
return result;
}

测试

System.out.println(extract("Parse this to grab the &@ClaimNumber@& variable",
Arrays.asList("ClaimNumber")));
System.out.println(extract("The quick brown fox jumps over the lazy dog",
Arrays.asList("fox", "i")));

输出

[&@ClaimNumber@&]
[quick, n fox j]

关于java - 从字符串中提取特定匹配的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40497082/

24 4 0
文章推荐: java - 将java库添加到Maven中
文章推荐: java - 按 Map 的值对 列表进行排序会导致具有不同私有(private)字段的对象崩溃