Digital Experience & Hybrid Data AI

Expresiones regulares avanzadas en java

Imagen de Gustavo Fernández
Gustavo Fernández

Llevo un rato jugando con una expresión regular para extraer de un
string cierta información. Como casi siempre los dos problemas
principlaes son

1) Las agrupaciones

2) Obtener la primera aparición del patrón y que ésta solo
contenga la parte que nos interesa

En este caso la expresión queda como sigue:

Pattern pattern = Pattern.compile(".*\/apps\/copy_(.*?)\/(.*\/){0,1}.*\..*");

Que nos permite recoger el texto que está entre copy_ y la siguiente
barra del siete "/" y también nos permite recoger, si existe
el resto del path que no es nombre de fichero y extensión. Por ejemplo
en el siguiente path

/esto/es/el/path/apps/copy_codigo/nuevo/path/con/mas/niveles/fichero.txt

nos gustaría obtener del grupo 1 el valor codigo y
del grupo 2 nuevo/path/con/mas/niveles

y del siguiente path:

/esto/es/el/path/apps/copy_codigo/fichero.txt

nos gustaría obtener del grupo 1 el valor codigo y
del grupo 2 null

Con la expresión regular descrita se consigue lo comentado y los dos
puntos a tener en cuenta son
el ? después del *
que nos
permite que la expresión se ajuste a la primera aparición y no a la
última y el {0,1} que nos permite indicar que el
elemento tiene que aparecer una o ninguna vez.

Si te ha parecido interesante comparte este post en RRSS

Facebook
LinkedIn
Telegram
Email

Leer más sobre temas relacionados

innovación / i+d
Iñigo Angulo

Raise Suite

Desde hace unos meses ZYLK participa en el proyecto Raise Suite, iniciativa liderada por Aristotle University of Thessaloniki (AUTH), compuesta por 25 socios y respaldada

Leer más »

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *