#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox
Local $sRegex = "(?xs)(?(DEFINE)" & @CRLF & _
" (?<next_open_tag>" & @CRLF & _
" [^<]*+" & @CRLF & _
" (?i: <++[^<?s][^<]* " & @CRLF & _
" | <++(?! \?php" & @CRLF & _
" | \?=" & @CRLF & _
" | script\s*language\s*=\s*([\'"]?)php\g{-1}\s*>" & @CRLF & _
" ) [^<]*" & @CRLF & _
" )*+" & @CRLF & _
" (?i: <++(?: \?php" & @CRLF & _
" | \?=" & @CRLF & _
" | [^>]+" & @CRLF & _
" ) " & @CRLF & _
" | \z " & @CRLF & _
" ) " & @CRLF & _
" )" & @CRLF & _
")" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"\A (?&next_open_tag) \K" & @CRLF & _
"" & @CRLF & _
"|" & @CRLF & _
"" & @CRLF & _
"[^'"`/#<?]*+" & @CRLF & _
"(?: '(?:[^'\\]+|\\.)*+' [^\'"`/#<?]*" & @CRLF & _
" | "(?:[^"\\]+|\\.)*+" [^\'"`/#<?]*" & @CRLF & _
" | `(?:[^`\\]+|\\.)*+` [^\'"`/#<?]* " & @CRLF & _
" | /(?![/*]) [^\'"`/#<?]* # stop for // or /*" & @CRLF & _
"" & @CRLF & _
" | # if close tag ?>" & @CRLF & _
" \? (?: >(?&next_open_tag)[^\'"`/#<?]* | )" & @CRLF & _
"" & @CRLF & _
" | < (?: # heredoc or nowdoc" & @CRLF & _
" <<[\ \t]*([\'"]?)" & @CRLF & _
" ([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)" & @CRLF & _
" \g{-2}[\ \t]*[\r\n]" & @CRLF & _
" (?-s:.*+[\r\n])*?" & @CRLF & _
" \g{-1}[\r\n;]" & @CRLF & _
" [^\'"`/#<?]*" & @CRLF & _
"" & @CRLF & _
" | (?i: /script\s*>)" & @CRLF & _
" (?&next_open_tag)" & @CRLF & _
" [^\'"`/#<?]* " & @CRLF & _
"" & @CRLF & _
" | [^\'"`/#<?]*" & @CRLF & _
" )" & @CRLF & _
")*+" & @CRLF & _
"\K" & @CRLF & _
"(?: (?://|\#)(?:[^\n?]+|\?(?!>))*+ # single line comment // и #" & @CRLF & _
" | /\*(?:[^*]+|\*(?!/))*+\*/ # multi line comment /* */" & @CRLF & _
")?" & @CRLF & _
""
Local $sString = "<!-- *//* -->" & @CRLF & _
"<?php" & @CRLF & _
"" & @CRLF & _
"$a = "text */*"; // comment" & @CRLF & _
"$b = 'text *//*'; # comment" & @CRLF & _
"//*" & @CRLF & _
"" & @CRLF & _
"if ($a) {" & @CRLF & _
" echo $b;" & @CRLF & _
"}" & @CRLF & _
"" & @CRLF & _
"/*/" & @CRLF & _
"" & @CRLF & _
"if ($bar) {" & @CRLF & _
" echo $foo;" & @CRLF & _
"}" & @CRLF & _
"" & @CRLF & _
"// */" & @CRLF & _
"" & @CRLF & _
"?>" & @CRLF & _
"<!-- *//* -->" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"<script language = "php" >" & @CRLF & _
"" & @CRLF & _
"# comment ?> Text <?php $a = '/*'; // comment" & @CRLF & _
"" & @CRLF & _
"$b = @`ls ./* -al`;" & @CRLF & _
"" & @CRLF & _
"# */" & @CRLF & _
"</script>" & @CRLF & _
"" & @CRLF & _
"<!-- *//* --> " & @CRLF & _
""
Local $sSubst = ""
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