Tengo un registro de cambios que tiene los números de versión entre corchetes como este:

## [0.3.0] - 2016-12-13 - FIX This is an example fix - FEATURE An example feature

Quiero extraer solo los números de versión, así que me quedo con:

[Unreleased] [0.3.0] [0.2.4] [0.2.3]

Idealmente, me gustaría extraer solo el primer valor entre corchetes que no es 'Inédito', por lo que obtengo la última versión número 0.3.0, aunque no estoy seguro de que esto sea posible en expresiones regulares.

¿Alguien puede ayudar? Gracias :)

1
Alistair Colling 14 dic. 2016 a las 18:05

2 respuestas

La mejor respuesta

Puedes usar una expresión regular como esta:

.*(\[.*?\]).*

Con la cadena de reemplazo: \1

Por cierto, si desea eliminar todo el resto del texto, puede usar:

.*(\[.*?\]).*|*

Demostración funcional

Actualización: si desea transformar el registro de cambios en una lista de versiones, podría crear esta expresión regular:

.*(\[.*?\])[\s\S]*?(^$|\z)

Demostración funcional

2
Federico Piazza 14 dic. 2016 a las 15:17

Editar (mal leído al principio):

Reemplazar

[\s\S]*?(\[[\d.]+])[\s\S]*

Con

\1

Consulte este ejemplo en regex101.

0
SamWhan 14 dic. 2016 a las 15:18