estoy tratando de conseguir TODAS las subcadenas de la cadena de entrada que coincide con el patrón dado.Java recursivo (?) Repetida (?) Patrón de profundidad (?) Acorde con
Por ejemplo,
cadena dada: aaxxbbaxb
patrón: un [az] {0,3} b
(Lo que realmente quiero expresar es: todos los patrones que se inicia con una y termina con b, pero puede tener hasta 2 alfabetos en entre ellos)
resultados exactos que quiero (con sus índices):
aaxxb: índice 0 ~ 4
axxb: índice 1 ~ 4
axxbb: el índice 1 ~ 5
axb: Índice 6 ~ 8
Pero cuando lo ejecuto a través de las clases de patrones y Matcher utilizando Pattern.compile()
y Matcher.find()
, sólo me da:
aaxxb: Índice 0 ~ 4
axb: índice 6 ~ 8
Esta es la pieza de código que he usado.
Pattern pattern = Pattern.compile("a[a-z]{0,3}b", Pattern.CASE_INSENSITIVE);
Matcher match = pattern.matcher("aaxxbbaxb");
while (match.find()) {
System.out.println(match.group());
}
¿Cómo se puede recuperar lo cada pieza de cadena que coincide con el patrón?
Por supuesto, no tiene que utilizar las clases Pattern y Matcher, siempre que sea eficiente :)
¿Por qué tiene el punto aquí 'a [a-z]. {0,2} b'? Si quiere tener patern 'a_b' donde' _' puede tener 0-2 caracteres alfabéticos, entonces el punto está mal allí, ¿no? – user219882
¿Cómo es 'aaxxbb' una cadena" que comienza con a y termina con b "y puede tener * hasta dos * letras entre ellas? – jmg
¡Gracias Tom y jmg por señalar eso! Edité la publicación original. – cnc4ever