#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox
Local $sRegex = "(?i)((?:(?:https?|ftp):\/{2})(?:(?:[0-9a-z_@-]+\.)+(?:[0-9a-z]){2,4})?(?:(?:\/(?:[~0-9a-z\#\+\%\@\.\/_-]+))?\/)*(?=\s|\"))(\/)?(index\.html?)?"
Local $sString = "there is some text with <a href=" http://www.Something.com/ "> but without index.html; then there is another one that is <a href = "https://www.other.com/more/stuff/index.html"> which should be unaltered." & @CRLF & _
"Finally does it work for href = "http://www.com/stuff/"" & @CRLF & _
"http://www.index.com/" & @CRLF & _
"http://ex.com/a/b/"" & @CRLF & _
"" & @CRLF & _
"http://www.example.com add /index.html" & @CRLF & _
"http://www.example.com/something do nothing" & @CRLF & _
"http://www.example.com/something/ add /index.html " & @CRLF & _
"http://www.example.com/something/index.html do nothing" & @CRLF & _
""
Local $sSubst = "\1/index.html"
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