原始字符串wcdma:OMMOID=g0uj599c-1@sbn=1101@me=1101,EQRNCID=1101,RACKNO=2,SHELFNO=2,SLOTNO=3,CPU=1要求通过正则表达式能够把字符串sbn=1101@me=1101,EQRNCID=1101,RACKNO=2,SHELFNO=2,SLOTNO=3,CPU=1等号后面的数字一次性提取出来,提取出来后可以形成1101 1101 2 2 3 1这样的格式,要求直接用原始串和正则表达式匹配后结果就是1101 1101 2 2 3 1或者匹配后用group的方式获取到每个值也行,请各位高人指教,高分相送。原始字符串等号前面的字符串是变的,只有等号和逗号是固定格式,希望正则表达式是个通用的
String str = "wcdma:OMMOID=g0uj599c-1@sbn=1101@me=1101,EQRNCID=1101,RACKNO=2,SHELFNO=2,SLOTNO=3,CPU=1";
String regex = "(?<==)\\d+";
Pattern pattern1 = Pattern.compile(regex);
Matcher matcher = pattern1.matcher(str);
String result = "";
while (matcher.find()) {
result = matcher.group();
System.out.println(result);
}1101
1101
1101
2
2
3
1
不知道是不是你想要的
Matcher m=Pattern.compile("\\d+").matcher(s.substring(s.indexOf("sbn=")));
String end="";
while(m.find()){
end+=m.group()+" ";
}
end=end.trim();
System.out.println(end);
String str = "wcdma:OMMOID=g0uj599c-1@sbn=1101@me=1101,EQRNCID=1101,RACKNO=2,SHELFNO=2,SLOTNO=3,CPU=1";
Matcher m = Pattern.compile("(\\w+=)(\\d+)").matcher(str);
while(m.find()){
System.out.println(m.group(2));
}
Matcher m = Pattern.compile("(\\w+)=(\\d+)").matcher(str);
String str2 = "me,RACKNO,CPU";
while(m.find()){
if(str2.indexOf(m.group(1)) != -1)
System.out.println(m.group(2));
}