Open IT Experts for Enterprise

Zylk empresa de desarrollo de ecommerce

Expresiones regulares avanzadas en java

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 RRS

Facebook
LinkedIn
Telegram
Email

Leer más sobre temas relacionados

Deja un comentario

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