Я пытаюсь разобрать следующую строку:
[key:"val" key2:"val2"]
где внутри есть произвольные пары ключ: "val". Я хочу получить имя ключа и значение. Для любопытных я пытаюсь разобрать формат базы данных Task Warrior.
Вот моя тестовая строка:
[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)
- person Stefnotch   schedule 05.03.2016