Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/06/2013, 02:43
viringas
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 7 meses
Puntos: 1
duda con pattern y matcher

Hola a todos,

tengo una duda y espero que me puedan ayudar o por lo menos decirme como salir del bache, tengo un texto metido en una variable mas o menos de este estilo:

ADMINISTRACIÓN GENERAL:

– MINISTERIO DE EMPLEO
Servicio Público Estatal:

Remisión de resolución de percepción indebida
de la Activa de Inserción....................... 2
Remisión de resolución de percepción indebida
del Sub ........................... 2
Remisión de resolución de percepción indebida
del Sub........................... 3
Remisión de resolución de percepción indebida
del Subsidio ........................... 3


– MINISTERIO DE ALIMENTACIÓN
Y MEDIO AMBIENTE
Confederación Hidrográfica:

Iniciación derecho a un aprovechamiento de aguas....... 4


ADMINISTRACIÓN PROVINCIAL:

.......
.......
...

--------+++++---------------+++++++++++---------------++++++++--------

bien lo que tengo que hacer es sacar los titulos los cuales son los que aparecen en mayuscula seguido de dos puntos, la unica idea que se me ocurre es utilizar la clase pattern y matcher para buscar mediante expresiones regulares de tal forma que busque las dos ultimas letras mayusculas seguido de dos puntos, hasta aqui no hay problema, la duda me surge de como poder hacer para que a medida que busque pueda ir almacenando los titulos, es decir, mientras no encuentre el patron que vaya guardando las palabras que estan antes de la expresion regular, lo hice de la siguiente manera pero solo me guarda las coincidencias con el patron, espero que me podais ayudar, o si sabeis una forma mejor de hacerlo o mas facil tambien me vendria bien saberlo

Código Java:
Ver original
  1.        
  2. Pattern p = Pattern.compile("[A-Z][A-Z]:");
  3. Matcher m = p.matcher(toString);
  4.        
  5.        
  6.        
  7.         for (int i = 0; i < toString.length(); i++) {
  8.        
  9.             sb.insert( sb.length() , toString.charAt(i) );
  10.            
  11.              if ( m.find() ) {
  12.                  
  13.                  sb.insert(sb.length() , m.group());
  14.                  
  15.                  System.out.println(sb.toString() );
  16.              }   
  17.         }

yo creo el que problema lo tengo en el char.At(i) que solo me pasa un caracter


espero que me podais ayudar

gracias