Estoy tratando de analizar el siguiente tipo de cadena:
[key:"val" key2:"val2"]
donde hay clave arbitraria: pares "val" dentro. Quiero tomar el nombre de la clave y el valor. Para aquellos curiosos, estoy tratando de analizar el formato de base de datos de task warrior.
Aquí está mi cadena de prueba:
[description:"aoeu" uuid:"123sth"]
lo que pretende resaltar que cualquier cosa puede estar en una clave o valor aparte del espacio, sin espacios alrededor de los dos puntos, y los valores siempre están entre comillas dobles.
En el nodo, esta es mi salida:
[deuteronomy][gatlin][~]$ node
> var re = /^\[(?:(.+?):"(.+?)"\s*)+\]$/g
> re.exec('[description:"aoeu" uuid:"123sth"]');
[ '[description:"aoeu" uuid:"123sth"]',
'uuid',
'123sth',
index: 0,
input: '[description:"aoeu" uuid:"123sth"]' ]
Pero description:"aoeu"
también coincide con este patrón. ¿Cómo puedo recuperar todos los partidos?
"some string".match(/regex/g)