我有一个像这样的字符串
BALANCE:“5048543747”,BALDEFOVD:“5119341413”,ACCTNO:“0001000918”,
我使用的是REGEX
(。*?),
结果我收到的第一个子字符串是
BALANCE: “5048543747”
实际上,我想要的结果是数组包含
{
BALANCE: “5048543747”
BALDEFOVD: “5119341413”
ACCTNO: “0001000918”
}
任何人都可以帮助我。非常感谢。
修改
我正在使用
代码模式模式= Pattern.compile(“(。*?),”);
Matcher matcher = pattern.matcher(“BALANCE:\”5048543747 \“,BALDEFOVD:\”5119341413 \“,ACCTNO:\”0001000918 \“,”);
if(matcher.find())
{
System.out.println(“found:”+ matcher.group(1));
}
我收到的结果
BALANCE: “5048543747”
答案 0 :(得分:1)
试试这段代码:
String input = "BALANCE:\"5048543747\",BALDEFOVD:\"5119341413\",ACCTNO:\"0001000918\",";
String pattern = "(.*?),";
Pattern r = Pattern.compile(pattern);
List<String> matches = new ArrayList<String>();
Matcher m = r.matcher(input);
while (m.find()) {
matches.add(m.group(1));
}
在看到一条评论后,您可能更容易将字符串拆分为逗号。
答案 1 :(得分:0)
while(matcher.find){
System.out.println("found: " + matcher.group(1));
}
Java中的Matcher起初可能有点令人困惑,尤其是在对组进行匹配时。在上面的示例中,matcher.group(0)
始终是整个正则表达式。 matcher.group(1)
与您在正则表达式中指定的第一组相匹配。 matcher.group(2)
会将匹配项返回到正则表达式中的第二组,如果您碰巧有一个(您的示例没有)。致电matcher.find
以检索下一组比赛。
答案 2 :(得分:0)
这将是有用的
(\w+:"\d+")
\ w +取整个字直到字面:
然后处理文字&#34;
\ d +取数字直到下一个文字&#34;
并且您将所有信息都与