const regex = new RegExp('(\\[|){\\n(?<tab> )"id": "[0-9]*",\\n\\<tab>"type": [0-9],\\n\\<tab>"content": "[^"]*",\\n\\<tab>"channel_id": "[0-9]*",\\n\\<tab>"author": {\\n(?<dtab> )"id": "[^"]*",\\n\\<dtab>"username": "[^"]*",\\n\\<dtab>"avatar": "[^"]*",\\n\\<dtab>"discriminator": "([0-9]{4}|[0-9])",\\n\\<dtab>"public_flags": [0-9]*,\\n\\<dtab>"flags": [0-9]*,\\n\\<dtab>"banner": (null|"[0-9]*"),\\n\\<dtab>"accent_color": (null|"[^"]*"),\\n\\<dtab>"global_name": "[^"]*",\\n\\<dtab>"avatar_decoration_data": (null|"[^"]*"),\\n\\<dtab>"banner_color": (null|"[^"]*")\\n\\<tab>},\\n\\<tab>"attachments": \\[[^\\]]*\\],\\n\\<tab>"embeds": \\[[^\\]]*],\\n\\<tab>"mentions": \\[[^\\]]*],\\n\\<tab>"mention_roles": \\[[^\\]]*\\],\\n\\<tab>"pinned": (true:|false),\\n\\<tab>"mention_everyone": (true|false),\\n\\<tab>"tts": (true:|false),\\n\\<tab>"timestamp": "[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{6}\\+[0-9]{2}:[0-9]{2}",\\n\\<tab>"edited_timestamp": (null|"[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{6}\\+[0-9]{2}:[0-9]{2}"),\\n\\<tab>"flags": [0-9]*,\\n\\<tab>"components": \\[[^\\]]*]\\n}(\\]|\\,|)', 'gm')
const str = `{
"id": "1145344233713188874",
"type": 0,
"content": "913 - this icecream good",
"channel_id": "1124414874454339715",
"author": {
"id": "746383273621717104",
"username": "kalote.",
"avatar": "95b9bdc7aa5784a2354e2ec5256ae736",
"discriminator": "0",
"public_flags": 128,
"flags": 128,
"banner": null,
"accent_color": null,
"global_name": "Carrot :3",
"avatar_decoration_data": null,
"banner_color": null
},
"attachments": [],
"embeds": [],
"mentions": [],
"mention_roles": [],
"pinned": false,
"mention_everyone": false,
"tts": false,
"timestamp": "2023-08-27T13:09:04.784000+00:00",
"edited_timestamp": null,
"flags": 0,
"components": []
},`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions