匹配多组花括号,但在其中获得不同的组

时间:2019-06-06 09:44:58

标签: javascript regex

我在下面得到了以下字符串。我首先需要匹配每组花括号,但也要匹配键。这是字符串:

  

开始观看任务... {更少:更少} {javascript:JavaScript} {图像:图像} {文件文件}

因此,举例来说,我需要进行正则表达式以类似于以下方式匹配我的字符串:

[
    'less': '{less: LESS}',
    'javascript': '{javascript: JavaScript}',
    'images': '{images: Images}',
    'files': '{files: Files}',
]

因此,:右侧的文本只是一个文本字符串,可以是任何字符串,:左侧的任何字符都是关键字。 {}是一个组。

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

const s = `Starting watch tasks... {less: LESS} {javascript: JavaScript} {images: Images} {files Files}`;
const regExp = /{([^:]+):[^}]+}/g;

let m;
let result = {};
while ((m = regExp.exec(s))) {
  result[m[1]] = m[0];
}

console.log(result);