如何解决RegEx 使用 RegExp.exec 从字符串中提取所有匹配项
var re = /\s*([^[:]+):\"([^"]+)"/g;
var s = '[description:"aoeu" uuid:"123sth"]';
var m;
do {
m = re.exec(s);
if (m) {
console.log(m[1], m[2]);
}
} while (m);
试试这个 JSfiddle:https ://jsfiddle.net/7yS2V/
解决方法
我正在尝试解析以下类型的字符串:
[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"
也符合这种模式。我怎样才能找回所有的比赛?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。