从下面的字符串中,我只需要NUM = 12122
和CheckFrom = 02453226170
String s="shopNumber = \"shop 1\", NUM = \"12122\", Reference = \"NUM1\", CheckFrom = \"02453226170\""
如何使用正则表达式和String类的replaceall函数来做到这一点?
答案 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
。