#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?i)^[\s]*@wb_export[\s]+def ([\w]+)\(jsonstr\):[\s\S]*?"""({"in":.*)"""([\s\S]*?)((@|$)[\s\S]*)$"
Local $sString = "@wb_export" & @CRLF & _
"def SimpleFunction(jsonstr):" & @CRLF & _
" #global fd" & @CRLF & _
" #os.write(fd, "wb_pre\n")" & @CRLF & _
" " & @CRLF & _
" # Definition of Input and Output Parameters (name and type)" & @CRLF & _
" """{"in": {"param":"string"}, "out": {"return":"string"}}"""" & @CRLF & _
" # /!\ Do not edit here !" & @CRLF & _
" # Edit function SimpleFunctionImpl() in "common" part" & @CRLF & _
" " & @CRLF & _
" import json,os,sys,datetime" & @CRLF & _
" inputData = json.loads(jsonstr)" & @CRLF & _
" " & @CRLF & _
" try:" & @CRLF & _
" outputData = SimpleFunctionImpl(inputData["param"])" & @CRLF & _
" fd = os.open("../log/custom_success.log", os.O_APPEND|os.O_CREAT|os.O_RDWR)" & @CRLF & _
" os.write(fd, "%s In : %s / Out : %s\n" % (datetime.datetime.now().strftime("[%Y-%m-%d %H:%M:%S.%f]"), jsonstr, json.dumps(outputData)))" & @CRLF & _
" os.close(fd)" & @CRLF & _
" return json.dumps(outputData)" & @CRLF & _
" except Exception as e:" & @CRLF & _
" fd = os.open("../log/custom_error.log", os.O_APPEND|os.O_CREAT|os.O_RDWR)" & @CRLF & _
" os.write(fd, "%s INTERNAL ERROR: Custom code uncatched exception in VCO::SimpleFunction().\n\tIn : %s\n\tMessage: %s\n" % (datetime.datetime.now().strftime("[%Y-%m-%d %H:%M:%S.%f]"), jsonstr, str(e)))" & @CRLF & _
" os.close(fd)" & @CRLF & _
" return json.dumps({"error":"INTERNAL ERROR: Custom code uncatched exception in VCO::SimpleFunction.\n\tMessage: %s" % str(e)})" & @CRLF & _
" except:" & @CRLF & _
" fd = os.open("../log/custom_error.log", os.O_APPEND|os.O_CREAT|os.O_RDWR)" & @CRLF & _
" os.write(fd, "%s INTERNAL ERROR: Custom code uncatched system exception in VCO::SimpleFunction().\n" % (datetime.datetime.now().strftime("[%Y-%m-%d %H:%M:%S.%f]")))" & @CRLF & _
" os.close(fd)" & @CRLF & _
" return json.dumps({"error":"INTERNAL ERROR: Custom code uncatched system exception in VCO::SimpleFunction()."})" & @CRLF & _
" # End of SimpleFunction - VCO WB Custom Code Editor" & @CRLF & _
"@wb_export" & @CRLF & _
"def SimpleFunction2(jsonstr):" & @CRLF & _
" #global fd" & @CRLF & _
" #os.write(fd, "wb_pre\n")" & @CRLF & _
" " & @CRLF & _
" # Definition of Input and Output Parameters (name and type)" & @CRLF & _
" """{"in": {"param":"string"}, "out": {"return":"string"}}"""" & @CRLF & _
" # /!\ Do not edit here !" & @CRLF & _
" # Edit function SimpleFunctionImpl() in "common" part" & @CRLF & _
" " & @CRLF & _
" return {"return": "OK2"}" & @CRLF & _
" " & @CRLF & _
" " & @CRLF & _
" " & @CRLF & _
" "
Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYFULLMATCH)
; 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