Tengo el siguiente caso:
Formato de tiempo y alguna descripción que está separada por un delimitador - como se muestra a continuación)
00:00 - Hello element
Estaba usando la siguiente expresión regular para detectar la coincidencia
/((?:\d{2,}:)?(?:[0-5]\d):(?:[0-5]\d)(\s?-.\w+))/g;coincide solo con "00:00 - Hola" después del espacio, no obtiene coincidencia. Aquí está la demostración de la misma https://regex101.com/r/omUEHy/1
Además, si la cadena coincide varias veces en una misma línea, debería funcionar.
Si tengo un texto como 00:50 - Hello element 01:50 - Poetry . Debería regresar 00:50 - Hello element y 01:50 - Poetry
La expresión regular proporcionada ... /\d{2}:\d{2}\s+.*?(?=\s+\d{2}:|\s+$)/g ... hace uso de una anticipación positiva ... (?=\s+\d{2}:|\s+$) (ya sea la secuencia de espacios en blanco de dos dígitos y dos puntos o la secuencia de espacios en blanco y el final de la cadena) ... para definir la terminación del perezoso/no codicioso coincidencia de cualquier personaje... .*? ... que sigue la secuencia de coincidencia de apertura de ... \d{2}:\d{2}\s+ .
const multilineSample = `00:50 - Hello element 01:50 - Poetry 00:50 - Hello element and another element 01:50 - Poetry 00:50 - Hello element and another element 01:50 - Poetry and prose 00:50 - Hello element 01:50 - Poetry `; const regXTimeAndEntry = /\d{2}:\d{2}\s+.*?(?=\s+\d{2}:|\s+$)/g; console.log( multilineSample.match(regXTimeAndEntry) ); .as-console-wrapper { min-height: 100%!important; top: 0; }