Estou tentando analisar o seguinte tipo de string:
[key:"val" key2:"val2"]
onde há chave arbitrária: pares "val" dentro. Eu quero pegar o nome da chave e o valor. Para aqueles curiosos, estou tentando analisar o formato de banco de dados do task warrior.
Aqui está a minha string de teste:
[description:"aoeu" uuid:"123sth"]
que visa destacar que qualquer coisa pode estar em uma chave ou valor além do espaço, sem espaços ao redor dos dois pontos e os valores sempre estão entre aspas duplas.
No nó, esta é minha saída:
[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"]' ]
Mas description:"aoeu"
também corresponde a esse padrão. Como posso recuperar todos os jogos?
"some string".match(/regex/g)