#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox
Local $sRegex = "(?sxX)#PostgreSQL v10+" & @CRLF & _
" (?<delimiter>; [;\s]*) #semicolon, followed by semicolons and spaces" & @CRLF & _
"| '(?>[^']+|'')*' #String Constants" & @CRLF & _
" | \b[Ee]'(?>[^\\']+|''|\\.)*' #String Constants With C-Style Escapes" & @CRLF & _
" | (?<stringDollarTag>\$[a-zA-Z\d_]*\$) #Dollar-Quoted String" & @CRLF & _
" [^$]*+ #speed improves" & @CRLF & _
" .*?" & @CRLF & _
" \k<stringDollarTag>" & @CRLF & _
"| "(?>[^"]+|"")*"" & @CRLF & _
"| #singe-line comment" & @CRLF & _
" (?<singeLineComment>-- [^\r\n]*+)" & @CRLF & _
"| #multi-line comment" & @CRLF & _
" (?<MutilineComment>" & @CRLF & _
" /\*" & @CRLF & _
" [^*/]*+" & @CRLF & _
" (?> [^*/]++" & @CRLF & _
" | \*[^/]" & @CRLF & _
" | /[^*]" & @CRLF & _
" | (?&MutilineComment)" & @CRLF & _
" )*+" & @CRLF & _
" \*/" & @CRLF & _
" )"
Local $sString = "CREATE UNIQUE INDEX/*CONCUR-" & @CRLF & _
"RENTLY;*/IF NOT EXISTS custom_query_group_name_name_uindex " & @CRLF & _
"" & @CRLF & _
"ON public.custom_query_group_name (lower(name)); ; " & @CRLF & _
";" & @CRLF & _
"--CREATE INDEX /*CONCURRENTLY;*/ IF NOT EXISTS custom_query_group_name_name_trigram_index ON public.custom_query_group_name USING GIN (lower(name) gin_trgm_ops);" & @CRLF & _
" ;" & @CRLF & _
" ;" & @CRLF & _
" ;" & @CRLF & _
"CREATE INDEX /*CONCURRENTLY*/ IF NOT EXISTS v3_company_name_trigram_index ON public.v3_company USING GIN (lower(name) gin_trgm_ops);" & @CRLF & _
" ;" & @CRLF & _
"-- PostgreSQL" & @CRLF & _
"$function$" & @CRLF & _
"BEGIN" & @CRLF & _
" RETURN ($1 ~ $q$[\t\r\n\v\\]$q$);" & @CRLF & _
"END;" & @CRLF & _
"$function$;" & @CRLF & _
"" & @CRLF & _
"-- PostgreSQL" & @CRLF & _
"SELECT $$Жанна д'Арк$$, $SomeTag$Жанна д'Арк$SomeTag$;" & @CRLF & _
"" & @CRLF & _
"SELECT 'abc\''\\def', "abc\""\\def";" & @CRLF & _
"SELECT 123;" & @CRLF & _
"" & @CRLF & _
""
Local $sSubst = "$0"
Local $sResult = StringRegExpReplace($sString, $sRegex, $sSubst)
MsgBox($MB_SYSTEMMODAL, "Result", $sResult)
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