Recherche, dans un texte, des sous-cha�nes qui correspondent � un mod�le d'expression r�guli�re.
StringRegExp ( $sText, $sPattern [, $iMode = 0 [, $iStart = 1]] )
$sText | Texte dans lequel effectuer la recherche |
$sPattern | Cha�ne contenant le crit�re de recherche, appel� mod�le. Voir Remarques. |
$iMode | [optionnel] Mode de recherche. Voir 'Valeur de retour' pour la description des diff�rents modes et la valeur de retour de la fonction dans chaque mode. $STR_REGEXPMATCH (0) - mode par d�faut $STR_REGEXPARRAYMATCH (1) $STR_REGEXPARRAYFULLMATCH (2) $STR_REGEXPARRAYGLOBALMATCH (3) $STR_REGEXPARRAYGLOBALFULLMATCH (4) Les constantes sont d�finies dans StringConstants.au3 |
$iStart | [optionnel] Position dans le texte o� d�marre la recherche. La valeur par d�faut est 1. |
Succ�s: | Retourne 1 si une concordance est trouv�e, 0 sinon. |
�chec: | Retourne 0 et @error = 2 si le mod�le est erron�. @Extended contient la position de l'erreur dans le mod�le. |
Succ�s: | Retourne le tableau des groupes captur�s. |
�chec: | @error = 1 Tableau invalide : aucune concordance trouv�e. @error = 2 Mod�le erron�: tableau invalide. @extended contient la position de l'erreur dans le mod�le. |
Succ�s: | Retourne un tableau valide |
�chec: | @error = 1 Tableau invalide : aucune concordance trouv�e. @error = 2 Mod�le erron�: tableau invalide. @extended contient la position de l'erreur dans le mod�le. |
Succ�s: | Retourne un tableau de r�sultats globaux pour le texte. |
�chec: | @error = 1 Tableau invalide : aucune concordance trouv�e. @error = 2 Mod�le erron�: tableau invalide. @extended contient la position de l'erreur dans le mod�le. |
Succ�s: | Retourne un tableau de tableaux. |
�chec: | @error = 1 Tableau invalide : aucune concordance trouv�e. @error = 2 Mod�le erron�: tableau invalide. @extended contient la position de l'erreur dans le mod�le. |
(*CR) | Carriage return (@CR). |
(*LF) | Line feed (@LF). |
(*CRLF) | Carriage return imm�diatement suivi de linefeed (@CRLF). |
(*ANYCRLF) | Toute s�quence @CRLF, @CR ou @LF. Ceci est la convention de saut de ligne par d�faut. |
(*ANY) | Une des s�quences de saut de ligne Unicode : @CRLF, @LF, VT, FF, @CR ou \x85. |
(*BSR_ANYCRLF) | Par d�faut \R repr�sente @CRLF, @CR ou @LF. |
(*BSR_UNICODE) | Change la signification de \R pour concorder avec toute s�quence de saut de ligne Unicode : @CRLF, @LF, VT, FF, @CR ou \x85. |
(?i) | Insensibilit� � la casse : les comparaisons deviennent insensibles � la casse � partir de ce point. Par d�faut, les comparaisons sont sensibles � la casse. Quand l'option UCP est activ�e elle s'applique � l'ensemble du plan Unicode 0, sinon elle s'applique par d�faut seulement aux lettres ASCII A-Z et a-z. |
(?m) | Multiligne : ^ et $ concordent soit au d�but (resp. � la fin) du texte, soit � la position pr�c�dant (resp. suivant) une s�quence de saut de ligne. Par d�faut, l'option multiligne est d�sactiv�e. |
(?s) | Mono-ligne ou DotAll: . concorde � tout caract�re, y compris une s�quence de saut de ligne. L'option DotAll est d�sactiv�e par d�faut, ainsi . ne concorde pas � une s�quence de saut de ligne. |
(?U) | Paresseux : les quantificateurs deviennent paresseux (non gourmands) � partir de ce point. Par d�faut, la recherche est gourmande - voir ci-dessous pour plus de d�tails. |
(?x) | �tendu : les espaces blancs � l'ext�rieur des classes de caract�res sont ignor�s et # d�marre un commentaire jusqu'au prochain caract�re Newline dans le mod�le. L'espacement des �l�ments rend les expressions r�guli�res beaucoup plus lisibles. Par d�faut, les espaces blancs et # sont interpr�t�s litt�ralement. |
\a | Repr�sente "alarm", le caract�re BEL (Chr(7)). |
\cX | Repr�sente "contr�le-X", o� X repr�sente tout caract�re ASCII 7 bits. Par exemple, "\cM" repr�sente ctrl-M, aussi repr�sentable par \x0D ou \r (Chr(13)). |
\e | Repr�sente le caract�re de contr�le "�chappement" (Chr(27)). Ne pas confondre avec l'�chappement (escaping) d'un caract�re! |
\f | Repr�sente "formfeed" (Chr(12)). |
\n | Repr�sente "linefeed" (@LF, Chr(10)). |
\r | Repr�sente "carriage return" (@CR, Chr(13)). |
\t | Repr�sente "tab" (@TAB, Chr(9)). |
\ddd | Repr�sente un caract�re de code octal ddd, OU une r�f�rence arri�re au groupe capturant num�ro ddd (en d�cimal). Par exemple, ([a-z])\1 repr�sente une minuscule doubl�e. � �viter soigneusement � cause de cette ambiguit� ! Utiliser de pr�f�rence les repr�sentations hexad�cimales ci-dessous. |
\xhh | Repr�sente un caract�re Unicode en hexad�cimal hh : "\x7E" repr�sente un tilde, "~". |
\x{hhhh} | Repr�sente un caract�re Unicode en h�xad�cimal hhhh : "\x{20AC}" repr�sente le symbole de l'Euro, "€" (ChrW(0x20AC)). |
\x | o� x est non-alphanum�rique, repr�sente un caract�re x litt�ral. C'est l'�chappement du caract�re x. Utilis� pour repr�senter les m�ta-caract�res litt�raux : "\.\[" repr�sente un point suivi d'un crochet ouvrant, ".[". |
\Q ... \E | S�quence verbatim : les m�ta-caract�res perdent leur signification sp�ciale entre \Q et \E : "\Q(.)\E" recherche la cha�ne "(.)" et est bien plus lisible que le mod�le �quivalent "\(\.\)" . |
. | Repr�sente tout caract�re Unicode except� une s�quence de saut de ligne. Repr�sente tout caract�re Unicode lorsque l'option (?s) est active. |
\d | Repr�sente tout chiffre d�cimal (n'importe quel chiffre d�cimal Unicode de n'importe quel langage quand UCP est activ�). |
\D | Repr�sente tout caract�re qui n'est pas un chiffre. |
\h | Repr�sente � tout caract�re d'espacement horizontal (voir tableau ci-dessous). |
\H | Repr�sente � tout caract�re hors espacements horizontal. |
\N | Repr�sente � tout caract�re sauf � une s�quence de saut de ligne, ind�pendamment de l'option (?s). |
\p{ppp} | Seulement quand l'option UCP est activ�e : repr�sente tout caract�re Unicode poss�dant la propri�t� ppp. Par exemple, "\b\p{Cyrillic}+" repr�sente tout mot cyrillique ; "\p{Sc}" repr�sente tout symbole mon�taire. Consultez la documentation de r�f�rence pour plus de d�tails. |
\P{ppp} | Seulement quand l'option UCP est activ�e : repr�sente tout caract�re Unicode ne poss�dant pas la propri�t� ppp. |
\R | Repr�sente toute s�quence 'newline' Unicode par d�faut, ou avec le param�tre (*BSR_...) actif. Par d�faut \R �quivaut � "(?>\r\n|\n|\r)" o� "(?>...)" est un groupe atomique, entit� qui rend la s�quence "\r\n" (@CRLF) indivisible. |
\s | Repr�sente tout caract�re d'espacement (voir tableau ci-dessous). |
\S | Repr�sente tout caract�re hors espacements. |
\v | Repr�sente tout caract�re d'espacement vertical (voir tableau ci-dessous). |
\V | Repr�sente tout caract�re hors espacement vertical. |
\w | Repr�sente tout caract�re 'mot' : tout chiffre, lettre ou soulignement (underscore "_"). Tout chiffre, lettre Unicode de tout langage ou soulignement (underscore "_") quand UCP est activ�. |
\W | Repr�sente tout caract�re qui n'est pas 'mot'. |
\X | Seulement quand UCP est activ� : repr�sente tout graph�me �tendu Unicode - une s�quence indivisible de codes qui repr�sente un seul caract�re pour l'utilisateur. En cons�quence, \X peut retr�senter plus d'un caract�re dans la cha�ne d'origine, contrairement � tous les autres �l�ments de ce tableau. |
[ ... ] | Repr�sente tout caract�re d'un ensemble explicite : "[aeiouy]" repr�sente toute voyelle minuscule. Un ensemble contigu (en Unicode le code d�finit un ordre) peut �tre d�fini en pla�ant un trait d'union entre les caract�res de d�part et de fin : "[a-z]" repr�sente toute lettre ASCII minuscule. Pour inclure un tiret (-) dans l'ensemble, placez-le au d�but ou � la fin de l'ensemble, ou utilisez l'�chappement (\-). Notez que le mod�le "[A-z]" est distinct de "[A-Za-z]" : ce dernier �quivaut � "[A-Z\[\\\]^_`a-z]". Pour inclure un crochet fermant dans l'ensemble, placez-le en premi�re position de l'ensemble ou utilisez l'�chappement : "[][]" ou encore "[\[\]]" correspond � "[" ou "]". Notez que dans une classe de caract�re, seules les s�quences \d, \D, \h, \H, \p{}, \P{}, \s, \Q...\E, \S, \v, \V, \w, \W, et \x conservent leur signification sp�ciale, tandis que \b d�signe le caract�re retour arri�re (Chr(8)). |
[^ ... ] | Compl�mentation d'une classe : repr�sente tout caract�re qui n'est pas dans l'ensemble : "[^0-9]" repr�sente tout caract�re qui n'est pas un chiffre d�cimal ASCII. Pour inclure un caret (^) dans un ensemble, placez-le ailleurs qu'en premi�re position de l'ensemble ou utilisez l'�chappement (\^). |
[:alnum:] | Lettres et chiffres ASCII 7 bits (�quivaut � [^\W_] ou encore [A-Za-z0-9]). Quand UCP est activ� : lettres et chiffres Unicode (�quivaut � [^\W_] ou \p{Xan}). |
[:alpha:] | Lettres ASCII (�quivaut � [^\W\d_] ou [A-Za-z]). Quand UCP est activ� : lettres Unicode (�quivaut � [^\W\d_] ou \p{L}). |
[:ascii:] | Caract�res ASCII 7 bits (�quivaut � [\x00-\x7F]). |
[:blank:] | Espacement horizontal (�quivaut � \h ou [\x09\x20]). Quand UCP est activ� : espacement horizontal Unicode (�quivaut � \h). |
[:cntrl:] | Caract�res de contr�le ASCII (�quivaut � Chr(0) ... Chr(31) et Chr(127)). |
[:digit:] | Chiffres d�cimaux ASCII (�quivaut � \d ou [0-9]). Quand UCP est activ� : chiffres d�cimaux Unicode (�quivaut � \d or \p{Nd}). |
[:graph:] | Caract�res ASCII imprimables hors espacements (�quivaut � Chr(33) ... Chr(126)). |
[:lower:] | Lettres minuscules ASCII 7 bits (�quivaut � [a-z]). Quand UCP est activ� : lettres minuscules Unicode (�quivaut � \p{Ll}). |
[:print:] | Caract�res ASCII imprimables ASCII 7 bits, y compris espacements (�quivaut � Chr(32) ... Chr(126)). |
[:punct:] | Caract�res de ponctuation ASCII, [:print:] sauf [:alnum:] et Espace, (33-47, 58-64, 91-96, 123-126). |
[:space:] | Espacements ASCII (�quivaut � [\h\x0A-\x0D]). [:space:] n'est pas tout � fait �quivalant � \s car il inclut VT, Chr(11)). |
[:upper:] | Lettres majuscules ASCII 7 bits (�quivaut � [A-Z]). Quand UCP est activ� : lettres majuscules Unicode (�quivaut � \p{Lu}). |
[:word:] | Caract�res 'mot' ASCII 7 bits (�quivaut � \w or [[:alnum:]_]). Quand UCP est activ� : caract�res 'mot' Unicode (�quivaut � \w ou [[:alnum:]_] ou \p{Xwd}). |
[:xdigit:] | Chiffres hexad�cimaux (�quivaut � [0-9A-Fa-f]). |
( ... ) | Groupe capturant. Les �l�ments d'un groupe sont trait�s dans l'ordre et peuvent �tre r�p�t�s comme un bloc. Par exemple, "(ab)+c" trouvera "abc" or "ababc", mais pas "abac". Un groupe capturant enregistre le texte auquel il a concord� et ce contenu est utilisable par r�f�rence arri�re. Ce contenu se retrouve dans le tableau renvoy� dans certains modes. Les groupes capturant sont num�rot�s � partir de 1 dans l'ordre d'apparition de leur parenth�se ouvrante. Les groupes capturant peuvent �galement �tre consid�r�s comme des sous-routines, r�f�ren�ables ailleurs dans le mod�le, �ventuellement de mani�re r�cursive. |
(?<nom> ... ) | Groupe de capture nomm�. Peut �tre appel� plus tard par son nom aussi bien que par son num�ro. �vitez d'utiliser le nom "DEFINE" (voir "Mod�les conditionnels"). |
(?: ... ) | Groupe non-capturant. N'enregistre pas le texte auquel il a concord� et n'est pas num�rot� ; ne peut donc pas �tre r�utilis� par r�f�rencence arri�re. |
(?| ... ) | Groupe non-capturant avec r�emploi. Affecte le m�me num�ro � tous les groupes capturant de premier niveau figurant dans les alternatives de ce groupe : "(?|(Lu)ndi|(Ma)rdi|(Me)rcredi|(Je)udi|(Ve)ndredi|(Sa)medi|(Di)manche)" repr�sente un nom de jour de la semaine et capture son abr�viation dans le groupe num�ro 1. |
(?> ... ) | Groupe atomique non-capturant : traite le contenu auquel il concorde comme une entit� indivisible (voir aussi Quantificateurs et gourmandise ci-dessous). Les groupes atomiques, comme les quantifications possessives, sont toujours gourmands. |
(?# ... ) | Groupe commentaire : toujours ignor� (mais ne peut pas contenir une parenth�se fermante donc les commentaires de groupes ne sont pas embo�tables). |
? | 0 ou 1, gourmand. |
?+ | 0 ou 1, possessif. |
?? | 0 ou 1, frugal. |
* | 0 ou plus, gourmand. |
*+ | 0 ou plus, possessif. |
*? | 0 ou plus, frugal. |
+ | 1 ou plus, gourmand. |
++ | 1 ou plus, possessif. |
+? | 1 ou plus, frugal. |
{x} | exactement x. |
{x,y} | au moins x et au plus y, gourmand. |
{x,y}+ | au moins x et au plus y, possessif. |
{x,y}? | au moins x et au plus y, frugal. |
{x,} | x ou plus, gourmand. |
{x,}+ | x ou plus, possessif. |
{x,}? | x ou plus, frugal. |
X|Y | Repr�sente l'une des alternatives X ou Y: "ac|dc|ground" repr�sente "ac" ou "dc" ou "ground". |
\n | R�f�rence au num�ro absolu d'un groupe pr�c�demment captur�. ATTENTION: si aucun groupe num�rot� n n'existe, cet �l�ment est �valu� comme le caract�re de valeur n si n est une valeur octale valide, sinon d'autres erreurs apparaissent. En raison de cette ambigu�t�, cette formulation est � utiliser avec pr�caution. Favorisez les formes suivantes pour une meilleure s�curit� s�mantique. |
\gn | R�f�rence au num�ro absolu d'un groupe pr�c�demment captur�. |
\g{n} | R�f�rence au num�ro absolu d'un groupe pr�c�demment captur�. Similaire au pr�c�dent mais d�limite clairement n : imp�rative lorsque les caract�res qui suivent sont des chiffres. |
\g-n | R�f�rence au num�ro relatif d'un groupe pr�c�demment captur�. |
\k<nom> | R�f�rence au nom d'un groupe pr�c�demment captur�. |
(?R) ou (?0) | R�cursivit� vers l'expression r�guli�re enti�re. |
(?n) | Appelle un sous-mod�le par son num�ro absolu. |
(?+n) | Appelle un sous-mod�le par son num�ro relatif. |
(?-n) | Appelle un sous-mod�le par son num�ro relatif. |
(?&nom) | Appelle un sous-mod�le par son nom. |
^ | En dehors d'une classe de caract�re, ce test est satisfait si la position courante est le d�but du sujet, mais �galement apr�s une s�quence de saut de ligne non-finale si l'option (?m) est active. Par d�faut, la s�quence de saut de ligne est soit @CRLF, soit @CR ou @LF isol�s. Dans une classe de caract�res, un caret ^ compl�mente la classe (exclut les caract�res qu'elle repr�sente) s'il figure en premi�re position, concorde litt�ralement s'il se trouve dans une autre position. |
$ | En dehors d'une classe de caract�res, ce test est satisfait si la position courante est � la fin du texte, mais �galement avant une s�quence de saut de ligne si l'option (?m) est active. Dans une classe de caract�res, $ repr�sente le signe dollar lui-m�me. |
\A | Test satisfait si la position courante est le d�but du texte, ind�pendamment de l'option multiligne (?m). �choue forc�ment si $iStart n'est pas 1. |
\G | Test satisfait si la position courante est la premi�re concordance trouv�e dans le texte. |
\z | Test satisfait si la position courante est � la fin du texte, ind�pendamment de l'option multiligne (?m). |
\Z | Test satisfait si la position courante est � la fin du texte ou avant une s�quence de saut de ligne, ind�pendamment de l'option multiligne (?m). |
\b | Test satisfait si la position courante est � la limite d'un 'mot', soit entre des caract�res non tous deux \w ou \W. Voir \w pour la signification de 'mot'. Dans une classe de caract�res, \b est le caract�re de contr�le retour arri�re (Chr(8)). |
\B | Test satisfait si la position courante n'est pas � la limite d'un 'mot'. |
(?=X) | Look-ahead positif : test satisfait si le sous-mod�le X concorde � partir de la position courante. |
(?!X) | Look-ahead n�gatif : test satisfait si le sous-mod�le X ne concorde pas � partir de la position courante. |
(?<=X) | Look-behind positif : test satisfait si le sous-mod�le X concorde avec les caract�res qui pr�c�dent la position courante. Le mod�le X doit concorder avec une cha�ne de longueur born�e, c'est-�-dire ne pas utiliser de quantificateurs ind�finis * + ou ? ou leurs �quivalents. |
(?<!X) | Look-behind n�gatif : test satisfait si le sous-mod�le X ne concorde pas aux caract�res qui pr�c�dent la position courante. Le mod�le X doit concorder avec une cha�ne de longueur born�e, c'est-�-dire ne pas utiliser de quantificateurs ind�finis * + ou ? ou leurs �quivalents. |
\K | R�-initialise le d�marrage de la recherche au point courant du sujet. Notez que les groupes d�j� captur�s sont conserv�s dans le tableau renvoy� ; il est donc toujours possible d'y faire r�f�rence plus tard. L'action de \K est similaire mais non identique � un look-behind, en ce que \K permet de travailler avec un sous-mod�le de longueur non born�e. |
(?(condition)mod�le_si_vrai) | Permet une ex�cution conditionnelle de mod�le_si_vrai. |
(?(condition)mod�le_si_vrai|mod�le_si_faux) | Applique l'un des mod�les suivant le r�sultat de (condition). |
(n) | Teste si le groupe de capture de num�ro absolu n permet la concordance. |
(+n) | Teste si le groupe de capture de num�ro relatif +n permet la concordance. |
(-n) | Teste si le groupe de capture de num�ro relatif -n permet la concordance. |
(<nom>) | Teste si le groupe de capture nomm� nom permet la concordance. |
(R) | Teste si une quelconque r�currence s'est produite. |
(Rn) | Teste si la plus r�cente r�currence portait sur la capture par le groupe de num�ro absolu n. |
(R&name) | Teste si la plus r�cente r�currence portait sur la capture par le groupe de nom name. |
(DEFINE) | Utilis�e sans mod�le_si_faux : permet la d�finition d'un sous-programme nomm� utilisable par ailleurs. "(?x) (?(DEFINE) (?<octet> 2[0-4]\d | 25[0-5] | 1\d\d | [1-9]?\d) )" d�finit un sous-programme nomm� "octet" qui permet une concordance avec un composant num�rique d'adresse IPv4. Ensuite, une adresse r�elle peut �tre recherch�e par "\b (?&byte) (\.(?&byte)){3} \b". |
(assertion) | Ici assertion est une assertion positive ou negative, look-ahead ou look-behind. |
(?J) | Permet d'assigner un m�me nom � plusieurs groupes ou sous-programme (non d�taill� ici). |
(?X) | Les �l�ments hors contexte provoquent une erreur, au lieu d'�tre ignor�s. |
(*J) | Autorise une compatibilit� partielle avec les expressions r�guli�res Javascript (non d�taill� ici). |
(*LIMIT_MATCH=n) | Limite � n le nombre de concordances trouv�es. |
(*LIMIT_RECURSION=n) | Limite la r�cursion � n niveaux. |
(*NO_START_OPT) | D�sactive plusieurs optimisations (non d�taill� ici). |
(*ACCEPT) | Force le succ�s imm�diat de la concordance dans le sous-programme en cours ou dans le mod�le de premier niveau. |
(*FAIL) ou (*F) | Force l'�chec imm�diat de la recherche. |
(*MARK:nom) or (*:nom) | (Voir la documentation de r�f�rence.) |
(*COMMIT) | (Voir la documentation de r�f�rence.) |
(*PRUNE) | (Voir la documentation de r�f�rence.) |
(*PRUNE:name) | (Voir la documentation de r�f�rence.) |
(*SKIP) | (Voir la documentation de r�f�rence.) |
(*SKIP:name) | (Voir la documentation de r�f�rence.) |
(*THEN) | (Voir la documentation de r�f�rence.) |
(*THEN:name) | (Voir la documentation de r�f�rence.) |
StringInStr, StringRegExpReplace
; == Mode 0: REGEXPMATCH ; Retourne 1 si une premi�re concordance a �t� trouv�e, sinon 0 #include <MsgBoxConstants.au3> #include <StringConstants.au3> Global $sujet, $regex, $iResult $sujet = "Aujourd'hui, on est Dimanche" $regex = "\bDi" ; Crit�re: mot commen�ant par "Di" $iResult = StringRegExp($sujet, $regex, $STR_REGEXPMATCH) MsgBox($MB_SYSTEMMODAL, "Mode 0", ($iResult = 1 ? "Trouv�" : "Non trouv�"))
; == Mode 1: REGEXPARRAYMATCH ; Retourne le tableau des groupes captur�s pour la premi�re concordance ; Si aucun groupe n'est captur�, retourne le r�sultat complet de la concordance en [0] #include <MsgBoxConstants.au3> #include <StringConstants.au3> #include <Array.au3> Global $sujet, $regex, $aArray $sujet = "Dimanche Lundi Mardi Mercredi" $regex = "\b\w+di\b" ; Mot se terminant par 'di' et aucun groupe captur� $aArray = StringRegExp($sujet, $regex, $STR_REGEXPARRAYMATCH) _ArrayDisplay($aArray, "Mode 1 - sans capture") $regex = "\b(\w+)(di)\b" ; Mot se terminant par 'di' et deux groupes captur�s $aArray = StringRegExp($sujet, $regex, $STR_RegExpArrayMatch) _ArrayDisplay($aArray, "Mode 1 - deux captures")
; == Mode 1: REGEXPARRAYMATCH ; Utilisation du param�tre $iStart pour boucler sur les concordances #include <MsgBoxConstants.au3> #include <StringConstants.au3> #include <Array.au3> Global $sujet, $regex, $aArray, $iStart $sujet = "Dimanche Lundi Mardi Mercredi" $regex = "(\b\w+)(di)\b" ; Mot se terminant par 'di' et deux groupes captur�s $aArray = StringRegExp($sujet, $regex, $STR_REGEXPARRAYMATCH) While @error = 0 $iStart = @extended _ArrayDisplay($aArray, "Mode 1") $aArray = StringRegExp($sujet, $regex, $STR_REGEXPARRAYMATCH, $iStart) WEnd
; == Mode 2: REGEXPARRAYFULLMATCH (retour simple, style php/preg_match()) ; Cherche la premi�re concordance et retourne un tableau avec le r�sultat complet en [0] ; suivi des groupes de capture en [1], [2], ... #include <MsgBoxConstants.au3> #include <StringConstants.au3> #include <Array.au3> Global $sujet, $regex, $aArray $sujet = "Dimanche Lundi Mardi Mercredi" $regex = "\b(\w+)(di)\b" $aArray = StringRegExp($sujet, $regex, $STR_REGEXPARRAYFULLMATCH) _ArrayDisplay($aArray, "Mode 2")
; == Mode 3 : REGEXPARRAYGLOBALMATCH (retour global, style ancien AutoIt) ; Retourne le tableau des groupes captur�s de TOUTES les concordances #include <Array.au3> #include <StringConstants.au3> #include <Array.au3> Global $sujet, $regex, $aArray $sujet = "Dimanche Lundi Mardi Mercredi" $regex = "\b(\w+)(di)\b" $aArray = StringRegExp($sujet, $regex, $STR_REGEXPARRAYGLOBALMATCH) _ArrayDisplay($aArray, "Mode 3")
; == Mode 4 : REGEXPARRAYGLOBALFULLMATCH (retour global, style php/preg_match_all()) ; Retourne un tableau avec autant d'�l�ments que de concordances ; Chaque �l�ment est lui-m�me un tableau contenant la concordance compl�te ainsi que les groupes captur�s. #include <Array.au3> #include <StringConstants.au3> #include <Array.au3> Global $sujet, $regex, $aConcordance, $aArray $sujet = "Dimanche Lundi Mardi Mercredi" $regex = "\b(\w+)(di)\b" $aConcordance = StringRegExp($sujet, $regex, $STR_REGEXPARRAYGLOBALFULLMATCH) for $i=0 to UBound($aConcordance)-1 $aArray = $aConcordance[$i] _ArrayDisplay($aArray, "Mode 4 - retour global") Next