cosa:
Quiero extraer el segundo de coincidencias en un patrón de expresión entre -
y _
en esta cadena:
VA-123456-124_VRG.tif
He intentado esto:
Pattern mpattern = Pattern.compile("-.*?_");
Pero consigo 123456-124
para la expresión regular anterior en Java.
Sólo necesito 124
.
¿Cómo puedo conseguir esto?
Tim Biegeleisen:
Me gustaría utilizar un comparador de patrón formal de aquí, para ser más específico posible. Me gustaría utilizar este patrón:
^[^-]+-[^-]+-([^_]+).*
y compruebe el primer grupo de captura para la posible coincidencia. Aquí es un fragmento de código de trabajo:
String input = "A-123456-124_VRG.tif";
String pattern = "^[^-]+-[^-]+-([^_]+).*";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(input);
if (m.find()) {
System.out.println("Found value: " + m.group(1) );
}
124
Manifestación
Por cierto, hay un chiste que también funcionaría aquí:
System.out.println(input.split("[_-]")[2]);
Sin embargo, la advertencia aquí es que no es muy específica, y puede fallar para sus otros datos.