Buenas,
En ningún momento habías dicho que debías sacar múltiples valores.
Cita: Pattern pattern = Pattern.compile(">(.+?)</a></h2>");
La expresion que pones en ese ejemplo es incorrecta.
No has aclarado exactamente lo que quieres sacar, así que basándome en el pequeño ejemplo que has puesto antes, mi propuesta sería:
Código Java:
Ver originalString content
= "<div class=\"bloque margen\">" + "<a name=\"p4653\"></a><h2>"
+ "<a class=\"identidad\" href=\"categoria/4653/\" title=\"Limpiar\">"
+ "LO QUE QUIERO SACAR</a></h2>"
+ "<div class=\"bloque margen\">"
+ "<a name=\"p4653\"></a><h2>"
+ "<a class=\"identidad\" href=\"categoria/4653/\" title=\"Limpiar\">"
+ "LO QUE QUIERO SACAR 2</a></h2>"
+ "<div class=\"bloque margen\">"
+ "<a name=\"p4653\"></a><h2>"
+ "<a class=\"identidad\" href=\"categoria/4653/\" title=\"Limpiar\">"
+ "LO QUE QUIERO SACAR 3</a></h2>";
//System.out.println(content);
Pattern pattern = Pattern.compile("<a\\b[^>]*href=\"[^>]*>(.*?)</a></h2>");
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
System.
out.
println(matcher.
group(1)); }
Estúdiate como funcionan las expresiones regulares o todo esto no te habrá servido de nada:
http://docs.oracle.com/javase/tutorial/essential/regex/ http://chuwiki.chuidiang.org/index.p...ulares_en_Java http://www.mkyong.com/regular-expres...ar-expression/ http://www.javamex.com/tutorials/reg...l#.VQPxy9JwsRk http://www.vogella.com/tutorials/Jav...s/article.html
Practica aquí:
http://www.regexplanet.com/advanced/java/index.html
Las expresiones regulares son similares y se utilizan en todos los lenguajes. Cuanto antes aprendas como funcionan, mejor.
Si quieres hacer cosas más complejas del tipo HTML scraping, utiliza herramientas más sofisticadas para no reinventar la rueda:
http://jsoup.org/ http://htmlunit.sourceforge.net/
Un saludo