【发布时间】:2011-09-13 11:37:15
【问题描述】:
我正在尝试解析以下类型的字符串:
[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" 也匹配此模式。如何找回所有匹配项?
【问题讨论】:
-
这可能是我的正则表达式错误和/或我只是不正确地使用 JavaScript 中的正则表达式工具。这似乎有效: > var s = "15 是 15,8 是 8"; > var re = /\d+/g; > var m = s.match(re); m = ['15', '8']
-
Javascript 现在有一个 .match() 函数:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 像这样使用:
"some string".match(/regex/g)
标签: javascript regex regex-group taskwarrior