str=DeviceBefore:1179,DeviceAfter:889900,ActionBefore:0023,ActionAfter:0993,WordBefore:AJ,WordAfter:Great想整为str2=Device:1179:889900,Action:0023:0993,Word:AJ:Great该怎么做?
str=DeviceBefore:1179,DeviceAfter:889900,ActionBefore:0023,ActionAfter:0993,WordBefore:AJ,WordAfter:Great想整为str2=Device:1179:889900,Action:0023:0993,Word:AJ:Great该怎么做?
/*
Before: str=DeviceBefore:1179,DeviceAfter:889900,ActionBefore:0023,ActionAfter:0993,WordBefore:AJ,WordAfter:Great
After : str2=Device:1179:889900,Action:0023:0993,Word:AJ:Great
*/import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Test{
public static void main(String[] args){
String content = "DeviceBefore:1179,DeviceAfter:889900,ActionBefore:0023,ActionAfter:0993,WordBefore:AJ,WordAfter:Great";
String result = process(content);
System.out.println(result);
} private static String process(String content){
String result = "";
String regex = "^([^:]+?)Before:([^,]+),(?:\\1)After:([^,]+),?(.*)$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(content); while(matcher.matches()){
result += matcher.group(1) + ":" + matcher.group(2) + ":" + matcher.group(3) + ",";
content = matcher.group(4);
matcher = pattern.matcher(content);
}
return result.substring(0,result.length() - 1);
}
}
result:
---------- java ----------
Device:1179:889900,Action:0023:0993,Word:AJ:GreatOutput completed (0 sec consumed) - Normal Termination
String str="DeviceBefore:1179,DeviceAfter:889900,ActionBefore:0023,ActionAfter:0993,WordBefore:AJ,WordAfter:Great";
String str2="Device:1179:889900,Action:0023:0993,Word:AJ:Great";
str = str.replaceAll("Before|,DeviceAfter|,ActionAfter|,WordAfter", "");
System.out.println(str);
System.out.println(str2);
输出:
Device:1179:889900,Action:0023:0993,Word:AJ:Great
Device:1179:889900,Action:0023:0993,Word:AJ:Great