#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?i)<script type='text\/javascript'(?:(?!<\/?script).\n)+?(\n*.*?)*?(googletag)(\n*.*?)*(?:(?!<\/?script>))*?<\/script>"
Local $sString = "<div>" & @CRLF & _
" <p>foo</p>" & @CRLF & _
" <script type='text/javascript'>another script goes here</script>" & @CRLF & _
"</div>" & @CRLF & _
"" & @CRLF & _
"<script type='text/javascript'>" & @CRLF & _
"var googletag = googletag || {};" & @CRLF & _
"googletag.cmd = googletag.cmd || [];" & @CRLF & _
"(function() {" & @CRLF & _
"var gads = document.createElement('script');" & @CRLF & _
"gads.async = true;" & @CRLF & _
"gads.type = 'text/javascript';" & @CRLF & _
"var useSSL = 'https:' == document.location.protocol;" & @CRLF & _
"gads.src = (useSSL ? 'https:' : 'http:') +" & @CRLF & _
"'//www.googletagservices.com/tag/js/gpt.js';" & @CRLF & _
"var node = document.getElementsByTagName('script')[0];" & @CRLF & _
"node.parentNode.insertBefore(gads, node);" & @CRLF & _
"})();" & @CRLF & _
"</script>" & @CRLF & _
"" & @CRLF & _
"<div>" & @CRLF & _
" <p>bar</p>" & @CRLF & _
" <script type='text/javascript'>yet another script goes here</script>" & @CRLF & _
"</div>" & @CRLF & _
"" & @CRLF & _
"<script type='text/javascript'>" & @CRLF & _
"googletag.cmd.push(function() {" & @CRLF & _
" googletag.defineSlot('/6176201/Opera_120x600', [120, 600], 'div-gpt-ad-6176201-opera_120x600').addService(googletag.pubads());" & @CRLF & _
" googletag.defineSlot('/6176201/Opera_300x250', [300, 250], 'div-gpt-ad-6176201-opera_300x250').addService(googletag.pubads());" & @CRLF & _
" googletag.defineSlot('/6176201/Opera_728x90', [728, 90], 'div-gpt-ad-6176201-opera_728x90').addService(googletag.pubads());" & @CRLF & _
" googletag.defineSlot('/6176201/Contextuals_Operaweb', [557, 30], 'div-gpt-ad-6176201-contextuals_operaweb').addService(googletag.pubads());" & @CRLF & _
" googletag.pubads().collapseEmptyDivs();" & @CRLF & _
" googletag.pubads().enableSingleRequest();" & @CRLF & _
" googletag.enableServices();" & @CRLF & _
"});" & @CRLF & _
"</script>" & @CRLF & _
"" & @CRLF & _
"<script type='text/javascript'>" & @CRLF & _
"googletag.cmd.push(function() { googletag.display('div-gpt-ad-6176201-opera_728x90'); });" & @CRLF & _
"</script>" & @CRLF & _
"" & @CRLF & _
"<div></div><script type='text/javascript'>this script must stay too</script><a></a>" & @CRLF & _
"" & @CRLF & _
"<script type='text/javascript'>" & @CRLF & _
"googletag.cmd.push(function() { googletag.display('div-gpt-ad-6176201-opera_120x600'); });" & @CRLF & _
"</script>"
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