次の種類の文字列を解析しようとしています。
[key:"val" key2:"val2"]
内部には任意の key:"val" ペアがあります。キー名と値を取得したい。好奇心旺盛な人のために、私はタスク ウォリアーのデータベース形式を解析しようとしています。
ここに私のテスト文字列があります:
[description:"aoeu" uuid:"123sth"]
これは、スペース以外のキーまたは値に何でも含めることができること、コロンの周りにスペースを入れないこと、および値が常に二重引用符で囲まれていることを強調することを目的としています。
ノードでは、これは私の出力です:
[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"]' ]
しかしdescription:"aoeu"
、このパターンにも一致します。すべての一致を取り戻すにはどうすればよいですか?