我正在尝试解析以下类型的字符串:
[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"
也符合这种模式。我如何找回所有比赛?
可能是我的regex错误和/或我只是在JavaScript中错误地使用了regex工具。这似乎可行:> var s =“十五是15,八是8”;> var re = / \ d + / g; > var m = s.match(re); m = ['15','8']
—
gatlin 2011年
Javascript现在具有.match()函数:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 像这样使用:
—
Stefnotch
"some string".match(/regex/g)