Próbuję przeanalizować następujący rodzaj ciągu:
[key:"val" key2:"val2"]
gdzie w środku znajduje się dowolny klucz: pary „val”. Chcę pobrać nazwę klucza i wartość. Dla ciekawskich próbuję przeanalizować format bazy danych wojownika zadaniowego.
Oto mój ciąg testowy:
[description:"aoeu" uuid:"123sth"]
co ma na celu podkreślenie, że w kluczu lub wartości może znajdować się wszystko poza spacją, bez spacji wokół dwukropków, a wartości są zawsze w cudzysłowach.
W węźle to jest moje wyjście:
[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"]' ]
Ale description:"aoeu"
również pasuje do tego wzorca. Jak mogę odzyskać wszystkie mecze?
"some string".match(/regex/g)