J'essaie d'analyser le type de chaîne suivant:
[key:"val" key2:"val2"]
où il y a des paires clé arbitraire: "val" à l'intérieur. Je veux saisir le nom de la clé et la valeur. Pour les curieux, j'essaye d'analyser le format de la base de données de task warrior.
Voici ma chaîne de test:
[description:"aoeu" uuid:"123sth"]
qui vise à souligner que tout peut être dans une clé ou une valeur en dehors de l'espace, aucun espace autour des deux-points et les valeurs sont toujours entre guillemets.
Dans node, voici ma sortie:
[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"]' ]
Mais description:"aoeu"
correspond également à ce modèle. Comment puis-je récupérer tous les matchs?
"some string".match(/regex/g)