java 正则表达式替换问题

有几个字符串
str1="[id=1,name=张三,age=3]";
str2="id=编号";
str3="name=张三";
str4="age=年龄";
想用正则替换成最终效果
str=[编号=1,姓名=张三,年龄=3],
请教大神用正则该怎么替换?

2个回答

正则不好替换吧,没想出来用正则怎么替换,但用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); 
jya126
jya126 因为str1长度及字段类型不固定,且未知,能想到的只有用正则匹配,不过还是要谢谢你
3 年多之前 回复

字符串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());
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐