Pas forcement, mais bon, puisque c'est demandéje crois qu'avec les REGEx on doit pouvoir faire nettement plus court
(Je colle le .clean devant la simple ou double extension)
Pas besoin de PCRE2
Ce n'est pas la RegEx la plus courte, mais la plus simple à comprendre.
(Les espaces, accents et extensions après gz fonctionnent aussi)
Code : Tout sélectionner
NewList Txt_Test$()
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.tgz"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.txt"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.gz"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.tar.gz"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.tar.Z"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.trop.long.ce.fichier.gz"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.été.tar.gz"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.été.tar.gz.txt"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.esp pace.gz"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\J'aime les pâtes.aux.oeufs.tar.gz"
If Not CreateRegularExpression(0, "(.+?)(\.\w+$|\.tar\.\w+$)")
Debug "Regex KO" : End
EndIf
ForEach Txt_Test$()
If ExamineRegularExpression(0, Txt_Test$())
While NextRegularExpressionMatch(0)
Debug "Origine : " + Txt_Test$()
Debug "Trouvé : " + RegularExpressionGroup(0, 2)
Debug "Nouveau : " + RegularExpressionGroup(0, 1) + ".clean" + RegularExpressionGroup(0, 2)
Debug ""
Wend
Else
Debug RegularExpressionError()
EndIf
Next