jya126
jya126
采纳率50%
2017-02-22 01:45

java 正则表达式替换问题

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • gengziqiang1 伪造的时空 4年前

    正则不好替换吧,没想出来用正则怎么替换,但用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); 
    
    点赞 1 评论 复制链接分享
  • xionglangs 编程爱好者熊浪 4年前

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

    点赞 评论 复制链接分享

相关推荐