规则:color\S*(:|=)\S*("|')?\S*\s*([^<>;:'"]*);{0,1}("|')?检测的字符串:<font color=#0000ff>public</font> <font color=#0000ff>class</font>为什么是得出这个结果color=#0000ff>public</font> 而不是color=#0000ff难道([^<>;:'"]*)这个不起作用了?希望高手解答!!谢谢

解决方案 »

  1.   

    我期望页面中所有这样的标签color=#0000ff全部替换成空的自己先顶一把
      

  2.   

    不知道楼主是用java的正则还是js的正则,如果是java的正则,group获取的默认是符合整条匹配规则的子串,而不是其中的一部分,如果楼主希望获取color=#0000ff,那么则需要在匹配规则中匹配color=#0000ff的部分加上()括起来,然后有哪个group(index)的形式获取选择组
      

  3.   


        String s = "<font color=#0000ff>public</font> <font color=#0000ff>class</font>";
        s =s.replaceAll("\\s*color=#[\\da-fA-F]{6}","");
        System.out.println(s);
      

  4.   

    try...color\s*[:=]\s*(["']?)[^<>;:'"]*;?\1