Sto cercando di analizzare il seguente tipo di stringa:
[key:"val" key2:"val2"]
dove ci sono chiavi arbitrarie: coppie "val" all'interno. Voglio prendere il nome della chiave e il valore. Per i curiosi sto cercando di analizzare il formato del database di task warrior.
Ecco la mia stringa di test:
[description:"aoeu" uuid:"123sth"]
che ha lo scopo di evidenziare che qualsiasi cosa può essere in una chiave o in un valore a parte lo spazio, nessuno spazio attorno ai due punti e che i valori sono sempre tra virgolette.
Nel nodo, questo è il mio output:
[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"]' ]
Ma description:"aoeu"
corrisponde anche a questo modello. Come posso recuperare tutte le partite?
"some string".match(/regex/g)