我正在寻找“ xnum =”之后和“,”分隔符之前的所有值。例如,在下面的字符串中,我想检索值“ zjdb”和“ 2jdb”并将它们按找到的顺序存储在数组中。我知道这是一个非常随意的事情,但是不幸的是,这是解决我目前面临的问题的唯一方法。

String: "{zjdb={fname=jbdjd, lname=ejdj, xnum=zjdb, email=ejdj}, 2jdb={fname=ij, lname=vji, xnum=2jdb, email=bbb}}"


我了解我需要遍历并搜索“ x”,然后查看下一个字符是否为“ n”,下一个字符是否为“ u”等,然后在“ =”之后获取索引,直至“,”,但是我考虑得太多了,这对我来说太复杂了。我想知道是否有人知道一个简单的解决方案。非常感谢。

最佳答案

您可以使用正则表达式查找标记。假设输入格式正确,例如xnum=值之后是,}

String input = "{zjdb={fname=jbdjd, lname=ejdj, xnum=zjdb, email=ejdj}, 2jdb={fname=ij, lname=vji, xnum=2jdb, email=bbb}}";
Pattern p = Pattern.compile("[{ ]xnum=([^,}]+)[,}]");
Matcher m = p.matcher(input);
while (m.find()) {
  String xnum = m.group(1);
  System.out.println(xnum);
}

07-28 03:14