有个比较长的字符串中有这么一段:Registrar.value='系统管理员',现在要把系统管理员给替换掉。但有个难点是Registrar.value的值是不固定的,也就是说不一定都是‘系统管理员’,也有可能是别的,有可能是中文的,也有可能是英文的,想请教下,用Sring的replace方法的话,应该怎么写正则表达式?谢谢了。。

解决方案 »

  1.   

    1. if() else if () else if () else....
    2. 如果字符串中有什么特征 比如说 有个双引号 或者尖括号 什么的来区分这些要替换的字符串 这个时候你在用正则表达式 "<.*>" 3.应该是replaceAll吧 ,replace能用正则表达式吗?!
      

  2.   

    //如果不想要'可以移动相应的括号
    String s="Registrar.value='系统管理员'";
    System.out.println(s.replaceAll("(Registrar\\.value=').*?(')", "$1$2"));
      

  3.   

    如果比较多的行。
    System.out.println(s.replaceAll("(?s)(Registrar\\.value=').*?(')", "$1$2"));
      

  4.   


    String str = "Registrar.value='系统\'管理员'"; // 还有转义的情况
    str = str.replaceAll("(Registrar\\.value=')((?:\\\\.|[^'])*)(')", "$1$2");