有一个字符窜a,用正则表达式可以找出需要替换的子窜,然后把子窜的特殊符号做替换。
怎么可以方便的取出所有符合正则表达式的子窜然后替换后, 再加上其他未做替换的部分呢? 需要替换的部分(既符合正则表达式的部分)和不需要替换的部分可能存在重复的特殊字符。怎么做效率比较高些?

解决方案 »

  1.   

    可以用预搜索
    举个例子要替换+为*,要求+前面是a,后面是b
    System.out.println("abca+basdf+d".replaceAll("(?<=a)\\+(?=b)", "*"));
      

  2.   

    这种方法可以达到目的,但要写关于需要过滤特殊字符的正则表达式, 当符合时,替换, 当被过滤字符窜复杂时,不容易写。我想 先找出你那种a+b, 然后再在这个里面替换掉+, 再放回到原来的字符窜中。 我想过滤的字符窜要比a+b复杂,有很多个类似+的这种字符。
      

  3.   

    用属性.replaceAll("要替换的字符","替换成什么样的字符");