my_java_life 发表于 2013-2-7 19:20:12

匹配HTML中的DIV

public static String getContentByRegex2(String webContent, String screenRegex, String tag)
    {
      Pattern aPattern = Pattern.compile(screenRegex, 2);
      Matcher aMat = aPattern.matcher(webContent);
      String result = null;
      if (!aMat.find())
      {
            return result;
      }
      result = aMat.group(1);
      int index = 0;
      int totalStartTag = 0;
      int totalEndTag = 0;
      int flag = 0;
      String regexStart = "(<" + tag + ">)|(<" + tag + "\\s+[^<>/]*>)";
      String regexSEnd = "</" + tag + ">";
      String regexTag = "(<" + tag + ">)|(<" + tag + "\\s+[^<>/]*>)|(</" + tag + ">)";
      result = result + regexSEnd;
      Pattern aPatternStartTag = Pattern.compile(regexStart, 2);
      Matcher aMatStartTag = aPatternStartTag.matcher(result);
      if (aMatStartTag.find())
      {
            if (aMatStartTag.start() > (index = result.indexOf(regexSEnd)))
            {
                return result.substring(0, index);
            }
            Pattern aPatternTag = Pattern.compile(regexTag, 2);
            Matcher aMatTag = aPatternTag.matcher(result);
            while (aMatTag.find())
            {
                String str = aMatTag.group();
                if (str.matches(regexSEnd))
                {
                  totalEndTag++;
                }
                else
                {
                  totalStartTag++;
                }
                if (totalEndTag == totalStartTag)
                {
                  flag = 1;
                  continue;
                }
                if (flag == 1 && str.matches(regexSEnd))
                {
                  index = aMatTag.start();
                  result = result.substring(0, index);
                  break;
                }
                else
                {
                  flag = 0;
                  continue;
                }
            }
      }
      else
      {
            if ((index = result.indexOf(regexSEnd)) != -1)
            {
                result = result.substring(0, index);
            }
      }
      return result;
    }
页: [1]
查看完整版本: 匹配HTML中的DIV