Voici la ligne :
Voici la partie RegExp"c:\test.test\test\test.docx"
Code : Tout sélectionner
(?:\.[^""]+)Auriez-vous une solution concernant cela
Je me sert de ce site :
https://regex101.com
Voici la partie RegExp"c:\test.test\test\test.docx"
Code : Tout sélectionner
(?:\.[^""]+)
Code : Tout sélectionner
#include <StringConstants.au3>
ConsoleWrite(StringRegExp('"c:\test.test\test\t.e.st.docx"', '.+\K(\.[^"]+)(?="$)', $STR_REGEXPARRAYMATCH)[0] & @CRLF) ; avec cette syntaxe si la chaîne n'est pas trouvée il y aura une erreur
ConsoleWrite(StringRegExpReplace('"c:\test.test\t.e.st\te.st.docx"', '.+(\.[^"]+)"$', '\1') & @CRLF)Code : Tout sélectionner
ConsoleWrite(StringRegExp('"c:\test.test\test\t.e.st."', '(\.[^."]+)"$|()$', 1)[0] & @CRLF) ; match une extension, ou rien
Code : Tout sélectionner
Local $results = StringRegExp('"C:\Test.test\test\fichier.docx.rar"', '\.([^\.]*)"$', 1)
If Not @error Then MsgBox(0, 'Extension', $results[0])
Certes mais si tu utilises l'ancre de fin, alors plus besoin de mentionner le dernier point puisqu'il est automatiquement exclu par la classe [^.]ZDS a écrit :l'extension correspond dans ton cas d'usage à "Tout ce qui n'est pas un point, entre le dernier point et le guillemet final", ce qu'on traduit en Regexp par \.([^\.]*)"$
Code : Tout sélectionner
Local $results = StringRegExp('"C:\Test.test\test\fichier.docx.rar"', '([^.]+)"$', 1)
If Not @error Then MsgBox(0, 'Extension', $results[0])Code : Tout sélectionner
Local $results = StringRegExp('"c:\test.test\test\test"', '(\.[^."]+)"$|()$', 1)
If Not @error Then MsgBox(0, 'Extension', $results[0])
Code : Tout sélectionner
$pattern = '([^."]+)"?\Z'
$results1 = StringRegExp('"C:\Test.test\test\fichier.docx.rar"', $pattern, 1)
$results2 = StringRegExp('C:\Test.test\test\fichier.docx.rar', $pattern, 1)
MsgBox(0, 'Extension', $results1[0] &@crlf& $results2[0])
Code : Tout sélectionner
$chaine ='"C:\Test.test\test\fichier.docx.rar"'
if StringInStr($chaine,".") Then ; test de la présence d'un point dans la chaine si oui on découpe
$decoupe=StringSplit($chaine,".") ; découpe de la chaine entre les points
$extension=$decoupe[$decoupe[0]] ; sélection du dernier morceau
$extension=StringReplace($extension,'"',''); remplacement des " par rien
MsgBox(0, 'Extension', $extension)
EndIf

Lourde mais point totalement injustifiéejchd a écrit :mikell, un tue tôt ? Lourde accusation !
