Functions > String >


StringRegExpReplace

Remplace du texte, dans une cha�ne, selon un mod�le d'expression r�guli�re.

StringRegExpReplace ( "test", "pattern", "replace" [, count = 0] )

Param�tres

test La cha�ne � analyser
pattern L'expression r�guli�re qui d�finit le crit�re de recherche. Consultez StringRegExp pour la syntaxe de d�finition du mod�le.
replace Le texte destin� � remplacer le texte trouv� par l'expression r�guli�re. Pour ins�rer un groupe de texte trouv�, \0 - \9 (ou $0 - $9) vous pouvez les utiliser en r�f�rences arri�re.
count [optionnel] Le nombre de fois o� ex�cuter le remplacement de la cha�ne. Par d�faut, 0 pour un remplacement global de toutes les occurrences.

Valeur de retour

Success: Retourne la cha�ne modifi�e selon l'expression r�guli�re. Testez @extended pour obtenir le nombre de remplacements effectu�s.
Echec: D�finit @error <> 0.
@error: 2 = Mod�le invalide. @extended = position de l'erreur dans le mod�le.

Remarques

Pour s�parer les remplacements avec r�f�rence arri�re des nombres (remplac�s) actuels, les encadrer avec des accolades, exemple: "${1}5".

Si un "\" doit �tre remplac� dans la cha�ne il doit �tre doubl�. Ceci est une cons�quence du m�canisme des r�f�rences arri�re.

Les formats de remplacement de "\" et "$" sont les seuls formats valides pour les r�f�rences arri�re support�es.

Consultez aussi le tutoriel Expressions r�guli�res, dans lequel vous pouvez ex�cuter un script pour tester votre expression r�guli�re.

En relation

StringRegExp, StringReplace

Exemple

#include <MsgBoxConstants.au3>

Test1()
Test2()
Test3()

; Cet exemple illustre un remplacement simple. Il remplace les voyelles aeiou 
; par le caract�re @.
Func Test1()
    Local $sInput = "Where have all the flowers gone, long time passing?"
    Local $sOutput = StringRegExpReplace($sInput, "[aeiou]", "@")
    Display($sInput, $sOutput)
EndFunc   ;==>Test1

; L'exemple suivant illustre l'utilisation des r�f�rences arri�re pour changer la date
;de MM/DD/AAAA en DD.MM.YYYY
Func Test2()
    Local $sInput = 'some text1 12/31/2009 01:02:03 some text2'& @CRLF & _
            'some text3 02/28/2009 11:22:33 some text4'
    Local $sOutput = StringRegExpReplace($sInput, '(\d{2})/(\d{2})/(\d{4})', ' $2.$1.$3 ')
    Display($sInput, $sOutput)
EndFunc   ;==>Test2

;L'exemple suivant illustre la n�cessit� d'une double barre oblique inverse
Func Test3()
    Local $sInput = '%CommonProgramFiles%\Microsoft Shared\'
    Local $sOutput = StringRegExpReplace($sInput, '%([^%]*?)%', 'C:\\WINDOWS\\Some Other Folder$')
    Display($sInput, $sOutput)
EndFunc   ;==>Test3

Func Display($sInput, $sOutput)
    ; Formate la sortie.
    Local $sMsg = StringFormat("Entr�e:\t%s\n\nOutput:\t%s", $sInput, $sOutput)
    MsgBox($MB_SYSTEMMODAL, "R�sultat", $sMsg)
EndFunc   ;==>Display