提取字符串中的一些单词(java)

时间:2012-12-30 15:36:29

标签: java regex

从下面的字符串中,我只需要NUM = 12122CheckFrom = 02453226170

String s="shopNumber = \"shop 1\", NUM = \"12122\", Reference = \"NUM1\", CheckFrom = \"02453226170\""

如何使用正则表达式和String类的replaceall函数来做到这一点?

1 个答案:

答案 0 :(得分:2)

使用Matcher.find可以更轻松地提取名称/值对。基本上你正在寻找模式word = "number"

Matcher m = Pattern.compile("(\\w+) = \"(\\d+)\"").matcher(s);
StringBuilder builder = new StringBuilder();
while (m.find()) {
   builder.append(m.group(1));
   builder.append("=");
   builder.append(m.group(2));
   builder.append(" ");
}

m.group(1)与第一个captured group相关,(即来自单词\w+的匹配)

Builder包含:

NUM=12122 CheckFrom=02453226170

<强>更新 根据您在评论中的问题,您可以改为使用:

Pattern.compile("(NUM = \"\\d+\").*( CheckFrom = \"\\d+\")")

并将这两个组合在一起以获得String