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;
}
{
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;
}