import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
/////Teste de regexp
//String patternStr = "^\\$(\\w+)(\\s+(.*))?$";
String field_name = "sequence";
//String patternStr = "^\\s+?<"+field_name+">(.*?)</"+field_name+">";
//String patternStr = "(\\n)";
String replaceStr = "";
String patternStr = "<"+field_name+">(\\s?(.*\\s?)+)</"+field_name+">\\n?";
Pattern pattern = Pattern.compile(patternStr);
StringBuffer _buffer_xml = null;
_buffer_xml = new StringBuffer();
//_buffer_xml.append("<reference>ZZZZZZZZ</reference>\n");
_buffer_xml.append("<request id=\"4\">\n");
_buffer_xml.append(" <object>ObjectReference@21f34</object>\n");
_buffer_xml.append(" <operation>join</operation>\n");
_buffer_xml.append(" <parameters>\n");
_buffer_xml.append(" <sequence>\n");
_buffer_xml.append(" <string>gustavo</string>\n");
_buffer_xml.append("<reference>\n");
_buffer_xml.append(" <object>ObjectReference@2b249</object>\n");
_buffer_xml.append(" <host>localhost</host>\n");
_buffer_xml.append(" <port>5555</port>\n");
_buffer_xml.append("</reference>\n");
_buffer_xml.append(" </sequence>\n");
_buffer_xml.append(" </parameters>\n");
_buffer_xml.append("</request>\n");
echo (_buffer_xml.toString());
StringBuffer new_buff = new StringBuffer();
StringTokenizer st = new StringTokenizer(_buffer_xml.toString(),"\n");
int count_tokens = st.countTokens();
//echo("tokens count: "+st.countTokens());
String linha ="";
boolean found = false;
while (st.hasMoreTokens()) {
linha = st.nextToken();
if (linha.trim().equals("<"+field_name+">")) {
found = true;
break;
}
}
if (found) {
new_buff.append("<"+field_name+">\n");
while (st.hasMoreTokens()) {
linha = st.nextToken();
if (linha.trim().equals("</"+field_name+">")) {
new_buff.append("</"+field_name+">\n");
found = false;
break;
}
new_buff.append(linha+"\n");
}
}
echo("-----------\n"+new_buff.toString());
System.exit(0);
echo(_buffer_xml.toString());
Matcher matcher = pattern.matcher(_buffer_xml.toString());
/*
String output = matcher.replaceAll(replaceStr);
System.out.println("*****");
System.out.println(output);
System.out.println("*****");
*/
boolean matchFound = matcher.find();
if (matchFound) {
System.out.println("*****");
for (int i=0; i<= matcher.groupCount(); i++){
System.out.println(i+" -> "+matcher.group(i));
}
//System.out.println(matcher.group(1).trim());
System.out.println("*****");
echo("Match found!!");
}else{
echo("Match not found!!");
}
}
public static void echo(String msg) {
System.out.println(msg);
}
}