String replacedStr = "kdiang askfna;ladi < font = \"red\" > asdfinfd";    String reg = "<\\s+[a_zA_Z]{1,4}\\s+=\\s+\"[a_zA_Z]{1,3}\"\\s+>";    我想从replacedStr字符串中取得<>之间的字符串,我写的有什么问题?

解决方案 »

  1.   

    public static void main(String[] args) 
        {
            String replacedStr = "kdiang askfna;ladi < font = \"red\" > asdfinfd";
            String patternStr = "<\\s*[a-zA-Z]{4}\\s*=\\s*\"[a-zA-Z]{1,3}\"\\s*>";
            
            Pattern pBase = Pattern.compile(patternStr,Pattern.CASE_INSENSITIVE);
            
            Matcher mBase = pBase.matcher(replacedStr);
            
            boolean result = mBase.find();
            StringBuffer sb = new StringBuffer();
            
            while (result)
            {
                
                mBase.appendReplacement(sb, mBase.group(0));
                System.out.println("===" + mBase.group(0));
                result = mBase.find();
            }        
        }
      

  2.   

    分组和向后引用,有时候用String 的split方法或indexOf,subString还较简单