请问,正则表达式替换[a]xxxx[/a]为<b>xxxx</b>怎么写啊?“[”“]”也是要替换的部分。而且只有匹配的两个字串才替换,如果有不匹配的则不替换。
我搞了半天总是不对。希望各位达人指点。并送上100分。

解决方案 »

  1.   

    String a = "[a]xxxx[/a]";
    a = a.replaceAll("\\[a\\][^\\[]*\\[/a\\]","<b>xxxx</b>");
    System.out.println(a);
      

  2.   

    String a = "[a]xxxx[/a]";
    a = (a.replaceAll("\\[","<")).replaceAll("\\]",">");
      

  3.   

    要想保持xxxx内容不变的话,只把a-->b,需要把xxxx解析出来。
      

  4.   

    哦,原来是只替换掉两头啊,会错意了,不好意思:p
    更改如下:
    String a = "[a]xxxx[/a][a]xxxx[/a]";
    a = a.replaceAll("\\[a\\]([^\\[]*)\\[/a\\]", "<b>$1</b>");
      

  5.   

    多谢jyy7751(wish i could fly)这就结贴了。
      

  6.   

    String strAa= "[a]xxxx[/a][a]xxxx[/a]";
    strAa=strAa.replaceAll("\\[a\\](\\[|\\w*|\\])\\[/a\\]","<b>$1</b>");