#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)(?:(?#" & @CRLF & _
"#json->start)(?:(?#" & @CRLF & _
" #array->start)\[\s*(?:(?#" & @CRLF & _
" #element-in-array->start)(?:(?#" & @CRLF & _
" #object->start){\s*(?:(?:(?#" & @CRLF & _
" #key:value->start)(?:(?:(?#" & @CRLF & _
" #key->start)"[a-zA-Z_]\w*"(?##key->end))\s*:\s*(?:(?#" & @CRLF & _
" #value->start)(?R)|"(?:\\.|[^\\"]*)*"|[+-]?(?:[1-9]\d*|0)(?:\.\d+)?|true|false|null(?#value->end)))(?#" & @CRLF & _
" #key:value->end))(?:\s*,\s*(?:(?#" & @CRLF & _
" " & @CRLF & _
" #key:value->start)(?:(?:(?#" & @CRLF & _
" #key->start)"[a-zA-Z_]\w*"(?##key->end))\s*:\s*(?:(?#" & @CRLF & _
" #value->start)(?R)|"(?:\\.|[^\\"]*)*"|[+-]?(?:[1-9]\d*|0)(?:\.\d+)?|true|false|null(?#value->end)))(?#" & @CRLF & _
" #key:value->end)))*)?\s*}(?#" & @CRLF & _
" " & @CRLF & _
" #object->end))|(?:(?#" & @CRLF & _
" " & @CRLF & _
" #value->start)(?R)|"(?:\\.|[^\\"]*)*"|[+-]?(?:[1-9]\d*|0)(?:\.\d+)?|true|false|null(?#value->end))(?#" & @CRLF & _
" #element-in-array->end))(?:\s*,\s*(?:(?#" & @CRLF & _
" " & @CRLF & _
" #element-in-array->start)(?:(?#" & @CRLF & _
" #object->start){\s*(?:(?#" & @CRLF & _
" #key:value->start)(?:(?:(?#" & @CRLF & _
" #key->start)"[a-zA-Z_]\w*"(?##key->end))\s*:\s*(?:(?#" & @CRLF & _
" #value->start)(?R)|"(?:\\.|[^\\"]*)*"|[+-]?(?:[1-9]\d*|0)(?:\.\d+)?|true|false|null(?#value->end)))(?#" & @CRLF & _
" #key:value->end))(?:\s*,\s*(?:(?#" & @CRLF & _
" " & @CRLF & _
" #key:value->start)(?:(?:(?#" & @CRLF & _
" #key->start)"[a-zA-Z_]\w*"(?##key->end))\s*:\s*(?:(?#" & @CRLF & _
" #value->start)(?R)|"(?:\\.|[^\\"]*)*"|[+-]?(?:[1-9]\d*|0)(?:\.\d+)?|true|false|null(?#value->end)))(?#" & @CRLF & _
" #key:value->end)))*\s*}(?#" & @CRLF & _
" " & @CRLF & _
" #object->end))|(?:(?#" & @CRLF & _
" " & @CRLF & _
" #value->start)(?R)|"(?:\\.|[^\\"]*)*"|[+-]?(?:[1-9]\d*|0)(?:\.\d+)?|true|false|null(?#value->end))(?#" & @CRLF & _
" #element-in-array->end)))*\s*\]|\[\s*\](?#" & @CRLF & _
" #array->end))|(?:(?#" & @CRLF & _
" " & @CRLF & _
" #object->start){\s*(?:(?:(?#" & @CRLF & _
" #key:value->start)(?:(?:(?#" & @CRLF & _
" #key->start)"[a-zA-Z_]\w*"(?##key->end))\s*:\s*(?:(?#" & @CRLF & _
" #value->start)(?R)|"(?:\\.|[^\\"]*)*"|[+-]?(?:[1-9]\d*|0)(?:\.\d+)?|true|false|null(?#value->end)))(?#" & @CRLF & _
" #key:value->end))(?:\s*,\s*(?:(?#" & @CRLF & _
" " & @CRLF & _
" #key:value->start)(?:(?:(?#" & @CRLF & _
" #key->start)"[a-zA-Z_]\w*"(?##key->end))\s*:\s*(?:(?#" & @CRLF & _
" #value->start)(?R)|"(?:\\.|[^\\"]*)*"|[+-]?(?:[1-9]\d*|0)(?:\.\d+)?|true|false|null(?#value->end)))(?##key:value->end)))*)?\s*}(?#" & @CRLF & _
" #object->end))|(?:(?#" & @CRLF & _
" #value->start)"(?:\\.|[^\\"]*)*"|(?<=[,:\s\[])[+-]?(?:[1-9]\d*|0)(?:\.\d+)?(?=[\s,\]}])|true|false|null(?#value->end))(?#" & @CRLF & _
"#json->end))"
Local $sString = "{" & @CRLF & _
" "code": 1," & @CRLF & _
" "re": [" & @CRLF & _
" "B121"" & @CRLF & _
" ]," & @CRLF & _
" "msg": null," & @CRLF & _
" "e": null," & @CRLF & _
" "detailMsg": null," & @CRLF & _
" "point": "com.hshc.hshcwap.modules.secondhand.controller.SecondHandController.queryBrand(SecondHandController.java:270)"," & @CRLF & _
" "pointList": [ ]," & @CRLF & _
" "error": false," & @CRLF & _
" "success": true," & @CRLF & _
" "successAndReNN": true" & @CRLF & _
"}" & @CRLF & _
"-------------" & @CRLF & _
"true,false , null, +33.640, 055.23,-22.340, "12\"a\\\\"" & @CRLF & _
"-------------" & @CRLF & _
"{}" & @CRLF & _
"" & @CRLF & _
"------------" & @CRLF & _
"" & @CRLF & _
"{" & @CRLF & _
" "dt":"LEADSEC_CS_0700R0600B20171127140643"," & @CRLF & _
" "level":20," & @CRLF & _
" "id":"152525881"," & @CRLF & _
" "type":"Alert Log"," & @CRLF & _
" "time":1585291269424," & @CRLF & _
" "source":{" & @CRLF & _
" "ip":"100.100.100.1"," & @CRLF & _
" "port":50223," & @CRLF & _
" "mac":"ec-41-18-19-3a-54"" & @CRLF & _
" }," & @CRLF & _
" "destination":{" & @CRLF & _
" "ip":"20.20.2.4"," & @CRLF & _
" "port":80," & @CRLF & _
" "mac":"c8-0c-c8-ef-09-50"" & @CRLF & _
" }," & @CRLF & _
" "protocol":"HTTP"," & @CRLF & _
" "securityid":"4"," & @CRLF & _
" "attackid":"1003"," & @CRLF & _
" "subject":"HTTP_Acunetix11_AWVS11_Content_Web漏洞扫描2"," & @CRLF & _
" "message":"nic=5;Method=POST;Host=20.20.2.4;URL长度=215;Http协议头长度=875;URL=/cgi-bin/php.cgi?-d allow_url_include=on -d safe_mode=off -d suhosin.simulation=on -d disable_functions=\"\" -d open_basedir=none -d auto_prepend_file=php:/input -d cgi.force_redirect=0 -d cgi.redirect_status_env=0 -n;访问文件=php.cgi;MsgbodyData=3c 3f 70 68 70 20 65 63 68 6f 28 6d 64 35 28 61 63 75 6e 65 74 69 78 2d 70 68 70 2d 63 67 69 2d 72 63 65 29 29 3b 20 3f 3e;"" & @CRLF & _
"}" & @CRLF & _
""
Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYGLOBALFULLMATCH)
Local $aFullArray[0]
For $i = 0 To UBound($aArray) -1
_ArrayConcatenate($aFullArray, $aArray[$i])
Next
$aArray = $aFullArray
; Present the entire match result
_ArrayDisplay($aArray, "Result")
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 AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm