当前位置: 首页 > 知识库问答 >
问题:

在Java中收集列表中的部分字符串

卫兴邦
2023-03-14

在一个用例中,我有一个包含许多< code >的长字符串

我写了一个正则表达式(< code > "

例如:

final String regex = "<img.*?\\\">";
final String string = "Hello World <img src=\"https://dummyimage.com/300.png/09f/777\"> \nMy Name <img src=\"https://dummyimage.com/300.png/09f/ff2\"> Random Text\nHello\nHello Random <img src=\"https://dummyimage.com/300.png/09f/888\"> \nMy Name <img src=\"https://dummyimage.com/300.png/09f/2ff\">adaad\n";
final String replace = "";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);

final String result = matcher.replaceAll(replace); // Here, how can I collect all the image tags in a list

共有2个答案

陶博赡
2023-03-14
匿名用户

在正则表达式中,您需要注意左尖括号

public static final Pattern IMG_TAG = Pattern.compile("img[^<]+>");

使用< code>Matcher.results()我们可以创建一个< code>MatchResult对象流,其中包含给定字符串中捕获序列的相关信息。为了获得匹配的子串,我们可以使用< code>MatchResult.group()。

final String string = "Hello World <img src=\"https://dummyimage.com/300.png/09f/777\"> \nMy Name <img src=\"https://dummyimage.com/300.png/09f/ff2\"> Random Text\nHello\nHello Random <img src=\"https://dummyimage.com/300.png/09f/888\"> \nMy Name <img src=\"https://dummyimage.com/300.png/09f/2ff\">adaad\n";
    
List<String> imageTags = IMG_TAG.matcher(string).results()
    .map(MatchResult::group)
    .toList();
        
imageTags.forEach(System.out::println);

输出:

<img src="https://dummyimage.com/300.png/09f/777">
<img src="https://dummyimage.com/300.png/09f/ff2">
<img src="https://dummyimage.com/300.png/09f/888">
<img src="https://dummyimage.com/300.png/09f/2ff">

施雅懿
2023-03-14

您可以简单地这样做:

final List<String> result = new ArrayList<>();
while (matcher.find()) {
     result.add(matcher.group());
}

并摆脱您的最终字符串替换 = "";

 类似资料:
  • 有一个用例,其中我有一个长的可以包含许多

  • 问题内容: 我想从一个字符中删除一部分字符串,即: 源字符串: 目标字符串: 问题答案: 有多种方法可以做到这一点。如果您有要替换的字符串,则可以使用该类的或方法。如果您要替换子字符串,则可以使用API 获得该子字符串。 例如 要替换“()”中的内容,可以使用:

  • 我有包含项目数组的类存储。 每个项目(类项目)有不同的体积,我正在添加项目到商店。假设我有20个项目,我把10个添加到2或3个不同的商店,我必须根据这些项目的数量在商店中排序。

  • 问题内容: 本质上,我想从文件中吸收一行文本,将字符分配给列表,并创建列表中所有单独字符的列表-列表列表。 此刻,我已经尝试过了: 这就是我所拥有的。我不太了解如何提取单个字符并将其分配给新列表。 我从文件中得到的行将类似于: 我想把它变成这个列表,每个单独的字符: 问题答案: 字符串是可迭代的(就像列表一样)。 我的意思是您确实想要这样的东西: 要么 要么 字符将包含文件中的所有字符。

  • 本文向大家介绍在Java中将字符串列表转换为逗号分隔的字符串,包括了在Java中将字符串列表转换为逗号分隔的字符串的使用技巧和注意事项,需要的朋友参考一下 首先,让我们说以下是我们的String列表- 现在,使用String.join()将其转换为逗号分隔的字符串 示例 以下是在Java中将字符串列表转换为逗号分隔的字符串的程序- 输出结果

  • 我有一个将sql查询读取为字符串的方法,需要将所有“\”替换为“\”。这样做是为了防止\n和\r被处理为输出中的换行符。 样本输入 (\nSELECT\na.population_id\n,a.empi_id\n\r,a.encounter_id\n,SPLIT_PART(MIN(a.service_date||'|'|| a.norm_numeric_value),'|',2)::FLOAT为e