#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?<Fname>.*\.)(S(?<se>\d{1,2})E(?<ep>\d{2,3}).*|(?<season>S\d{1,2}-S\d{2,3}).*|(?<yr>\d{4}[^p]).*)"
Local $sString = "Westworld.S04E05.720p.WEB.h264-KOGi[rarbg]" & @CRLF & _
"Westworld.S04E04.1080p.WEB.H264-CAKES[rarbg]" & @CRLF & _
"For.All.Mankind.S03E08.720p.WEB.h264-KOGi[rarbg]" & @CRLF & _
"Talk.to.Me.2022.1080p.WEBRip.DD5.1.x264-LAMA" & @CRLF & _
"Jules.2023.1080p.AMZN.WEBRip.DD5.1.x264-LAMA" & @CRLF & _
"90.Day.Fiance.UK.S02E12.1080p.HEVC.x265-MeGusta" & @CRLF & _
"Inside.Job.S01-S02.WEBRip.1080p.AAC5.1.x265-SiQ" & @CRLF & _
"Til Death Do Us Part 2023 1080p AMZN WEBRip DD5 1 x264-LAMA" & @CRLF & _
"UFC.Fight.Night.227.Grasso.vs.Shevchenko.2.WEB-DL.H264.Fight-BB[TGx]" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"mIRC does not allow you to retrieve the full match. You can access simple captures but *you cannot access named capture* Well dam, now what?" & @CRLF & _
"" & @CRLF & _
"***Work in progress***" & @CRLF & _
"$replace($1-,$chr(32),$chr(46))" & @CRLF & _
"" & @CRLF & _
";mIRC Alias to test" & @CRLF & _
"alias test1 {" & @CRLF & _
" ;TV" & @CRLF & _
" ;var %s Westworld.S04E05.720p.WEB.h264-KOGi[rarbg]" & @CRLF & _
"" & @CRLF & _
" ;TV Series" & @CRLF & _
" ;var %s Inside.Job.S01-S02.WEBRip.1080p.AAC5.1.x265-SiQ" & @CRLF & _
"" & @CRLF & _
" ;Movie" & @CRLF & _
" var %s A.Million.Miles.Away.2023.1080p.AMZN.WEBRip.DD5.1.x264-LAMA" & @CRLF & _
"" & @CRLF & _
" noop $regex(name, %s,/(?<Fname>.*\.)(S(?<se>\d{1,2})E(?<ep>\d{2,3}).*|(?<season>S\d{1,2}-S\d{2,3}).*|(?<yr>\d{4}[^p]).*)/g)" & @CRLF & _
" if ($len($regml(name,3)) == 5) { Echo -a Movie: Fn: $regml(name,1) Year: $regml(name,3) | halt }" & @CRLF & _
" if (-s isin %s) { Echo -a Series: Fn: $regml(name,1) S: $regml(name,3) }" & @CRLF & _
" else echo -a TV: Fn: $regml(name,1) S: $regml(name,3) EP: $regml(name,4)" & @CRLF & _
"}" & @CRLF & _
"" & @CRLF & _
";mIRC 7zip stuff" & @CRLF & _
"var %eDir $getdir(.tar)" & @CRLF & _
"var %oDir $getdir_Movies" & @CRLF & _
" /run -np "c:\Program files\7-Zip\7z.exe" e -aos " $+ %eDir $+ %s $+ " *.avi *.mkv *.mp4 -r -o $+ " $+ %oDir $+ ""
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