Tomar un caracter específico dentro de una ruta

Buenos días @Blinsigo y welcome a la comunidad de KNIME !

Adjunto una posible solución basada en expresión regular:

Se podría hacer con el nodo -Cell Splitter- pero habría que hacerlo en varias etapas y luego filtrar las columnas innecesarias. Con un -String Manipulation- y un poco de regex es mucho más fácil y rápido.

La expresión regular es la siguiente:


regexReplace($Path$, "^.*.\([0-9]{2}).*$", "$1")

Hay que usar la función “regexReplace()” para extraer lo que está definido entre paréntesis, es decir 2 dígitos consecutivos:


([0-9]{2})

El “$1” nos indica que queremos recuperar lo que está entre paréntesis en la expresión regular anterior.

El "^.*.\" indica que aceptamos todo lo que venga hasta llegar a una barra invertida \, justo antes de los dos dígitos.

El .*$ indica que existe algo después de los dos dígitos hasta el fin de la frase indicado por el “$”.

Si en vez de 2 dígitos, hicieran falta por ejemplo entre 2 y 4, habría entonces que escribir lo siguiente ^.*.\([0-9]{2,4}).*$

Espero que estas indicaciones le sean de ayuda. No soy un experto en expresiones regulares, lejos de serlo, así que quizás se pueda mejorar para hacerlo más simple y/o más robusto.

Nos dirá por favor si le convino esta solución o si necesita más ayuda.

Saludos,

Ael

3 Likes