Я намагаюся проаналізувати такий тип рядка:
[key:"val" key2:"val2"]
де всередині є довільний ключ: пари "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"
також відповідає цій схемі. Як я можу отримати всі матчі назад?
"some string".match(/regex/g)