首页 > 解决方案 > 如何在某个值之后检索字符串中的所有记录

问题描述

我希望检索“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”等,然后在“=”之后获取索引,直到“,”但是我已经考虑太多了,这对我来说太复杂了。我想知道是否有人知道对此有点简单的解决方案..?提前非常感谢。

标签: javastringloops

解决方案


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

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);
}

推荐阅读