package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)(\[|){\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}(\]|\,|)`)
var 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": []
},`
for i, match := range re.FindAllString(str, -1) {
fmt.Println(match, "found at index", i)
}
}
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 Golang, please visit: https://golang.org/pkg/regexp/