gpt4 book ai didi

java - 使用java的字符串表达式匹配器

转载 作者:行者123 更新时间:2023-12-01 17:50:46 25 4
gpt4 key购买 nike

我正在寻找从大字符串中提取三个字符串的最佳方法。

我的字符串如下

x= " some test....  some text (some text, equipmentName: 'XXX', equipmentNumber: 'yyy', equipmentSlot: ‘zzz’) some text"

我想提取三个字符串。

String1 = "equipmentName: 'XXX'"
String2= "equipmentNumber: 'yyy'"
String3 = "equipmentSlot: ‘zzz’"

我应该使用模式匹配器还是只是简单的旧java索引和最后一个索引等...

最诚挚的问候。

最佳答案

您可以使用 正则表达式,例如 (equipment\w+: (?:[''']\w+['''])) 来匹配 3元素

  • 设备\w+不同名称

  • (?:[''']\w+[''']) 非捕获组中单词周围的逗号

给出 Pattern p = Pattern.compile("(equipment\\w+: (?:[''']\\w+[''']))");

<小时/>
  1. 对结果进行经典循环:

    Matcher m = p.matcher(x);
    List<String> res = new ArrayList<>();
    while (m.find()) {
    res.add(m.group());
    }

    //[equipmentName: 'XXX', equipmentNumber: 'yyy', equipmentSlot: ‘zzz’]
    System.out.println(res);
  2. 具有Stream接口(interface)

    List<String> res = p.matcher(x).results().map(MatchResult::group)
    .collect(Collectors.toList());

    //[equipmentName: 'XXX', equipmentNumber: 'yyy', equipmentSlot: ‘zzz’]
    System.out.println(res);

关于java - 使用java的字符串表达式匹配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60797917/

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