有几个字符串
str1="[id=1,name=张三,age=3]";
str2="id=编号";
str3="name=张三";
str4="age=年龄";
想用正则替换成最终效果
str=[编号=1,姓名=张三,年龄=3],
请教大神用正则该怎么替换?
正则不好替换吧,没想出来用正则怎么替换,但用replace函数可以:
str1="[id=1,name=张三,age=3]";
str2="id=编号";
str3="name=张三";
str4="age=年龄";
var arr1=str2.split('=');
var arr2=str3.split('=');
var arr3=str4.split('=');
str = str1.replace(arr1[0],arr1[1]).replace(arr2[0],arr2[1]).replace(arr3[0],arr3[1]);
alert(str);
字符串Str1的长度可以不定,字段可以先转换为字符串,只要格式正确就行,但str2、str3、str4需要确定。
public static void main(String[] args) {
String str1 = "[id=1,name=张三,age=3]";
String[] infos = str1.substring(1, str1.length() - 1).split(",");
String str2 = "id=编号", str3 = "name=名字", str4 = "age=年龄";
String[] infoStr2 = str2.split("=");
String[] infoStr3 = str3.split("=");
String[] infoStr4 = str4.split("=");
Map map = new HashMap();
map.put(infoStr2[0], infoStr2[1]);
map.put(infoStr3[0], infoStr3[1]);
map.put(infoStr4[0], infoStr4[1]);
StringBuffer sb = new StringBuffer();
String[] info = null;
sb.append("[");
for (int i = 0, len = infos.length; i < len; i++) {
info = infos[i].split("=");
sb.append(map.get(info[0]) + "=" + info[1]);
if (i == len - 1) {
break;
}
sb.append(",");
}
sb.append("]");
System.out.println(sb.toString());
}