#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "educacao\/busca-?([\w%-]+)?\/?(?!em-)([\w%-]+)?\/?(em-)?([\w%-]+)?\/?"
Local $sString = "###################" & @CRLF & _
"" & @CRLF & _
"# bug cases" & @CRLF & _
"https://www.catho.com.br/educacao/busca/em-em-em-em-extrema-mg" & @CRLF & _
"https://www.catho.com.br/educacao/busca/em-extrema-mg" & @CRLF & _
"https://www.catho.com.br/educacao/busca/em-mextrema-mg" & @CRLF & _
"https://www.catho.com.br/educacao/busca-curso-admin/usp/em-mextrema-mg" & @CRLF & _
"https://www.catho.com.br/educacao/busca-curso-admin/em-mextrema-mg" & @CRLF & _
"https://www.catho.com.br/educacao/busca-admin/em-mextrema-mg" & @CRLF & _
"" & @CRLF & _
"#####################" & @CRLF & _
"" & @CRLF & _
"// without term or filters" & @CRLF & _
"https://www.catho.com.br/educacao/busca" & @CRLF & _
"https://www.catho.com.br/educacao/busca/" & @CRLF & _
"" & @CRLF & _
"###################" & @CRLF & _
"" & @CRLF & _
"// with term or match but no filters" & @CRLF & _
"https://www.catho.com.br/educacao/busca-curso-design-industrial" & @CRLF & _
"https://www.catho.com.br/educacao/busca-curso-design-industrial/" & @CRLF & _
"https://www.catho.com.br/educacao/busca-de%20csign-industrial" & @CRLF & _
"https://www.catho.com.br/educacao/busca-de%20csign-industrial/" & @CRLF & _
"https://www.catho.com.br/educacao/busca-design-industrial" & @CRLF & _
"https://www.catho.com.br/educacao/busca-design-industrial/" & @CRLF & _
"" & @CRLF & _
"###################" & @CRLF & _
"" & @CRLF & _
"// without term but with provider" & @CRLF & _
"https://www.catho.com.br/educacao/busca/centro-universitario-senac" & @CRLF & _
"https://www.catho.com.br/educacao/busca/centro-universitario-senac/" & @CRLF & _
"" & @CRLF & _
"// without term but with location" & @CRLF & _
"https://www.catho.com.br/educacao/busca/em-sao-paolo" & @CRLF & _
"https://www.catho.com.br/educacao/busca/em-sao-paolo/" & @CRLF & _
"" & @CRLF & _
"// without term but with provider & location" & @CRLF & _
"https://www.catho.com.br/educacao/busca/centro-universitario-senac/em-sao-paolo" & @CRLF & _
"https://www.catho.com.br/educacao/busca/centro-universitario-senac/em-sao-paolo/" & @CRLF & _
"" & @CRLF & _
"###################" & @CRLF & _
"" & @CRLF & _
"// with term & provider" & @CRLF & _
"https://www.catho.com.br/educacao/busca-design-industrial/centro-universitario-senac" & @CRLF & _
"https://www.catho.com.br/educacao/busca-design-industrial/centro-universitario-senac/" & @CRLF & _
"" & @CRLF & _
"// with term & location" & @CRLF & _
"https://www.catho.com.br/educacao/busca-design-industrial/em-sao-paolo" & @CRLF & _
"https://www.catho.com.br/educacao/busca-design-industrial/em-sao-paolo/" & @CRLF & _
"" & @CRLF & _
"// with term & provider & location" & @CRLF & _
"https://www.catho.com.br/educacao/busca-design-industrial/centro-universitario-senac/em-sao-paolo" & @CRLF & _
"https://www.catho.com.br/educacao/busca-design-industrial/centro-universitario-senac/em-sao-paolo/" & @CRLF & _
"" & @CRLF & _
"###################" & @CRLF & _
"" & @CRLF & _
"// with match & provider" & @CRLF & _
"https://www.catho.com.br/educacao/busca-curso-design-industrial/centro-universitario-senac" & @CRLF & _
"https://www.catho.com.br/educacao/busca-curso-design-industrial/centro-universitario-senac/" & @CRLF & _
"" & @CRLF & _
"// with match & location" & @CRLF & _
"https://www.catho.com.br/educacao/busca-curso-design-industrial/em-sao-paolo" & @CRLF & _
"https://www.catho.com.br/educacao/busca-curso-design-industrial/em-sao-paolo/" & @CRLF & _
"" & @CRLF & _
"// with match & provider & location" & @CRLF & _
"https://www.catho.com.br/educacao/busca-curso-design-industrial/centro-universitario-senac/em-sao-paolo" & @CRLF & _
"https://www.catho.com.br/educacao/busca-curso-design-industrial/centro-universitario-senac/em-sao-paolo/"
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