Difference between revisions of "String"

From Base de connaissances eggdrops & TCL
Jump to: navigation, search
 
Line 1: Line 1:
 
[[Catégorie:Langage Tcl]]
 
[[Catégorie:Langage Tcl]]
 
string - Manipulation des chaînes
 
string - Manipulation des chaînes
=Syntaxe=
+
==Syntaxe==
 
<source lang=tcl>string option arg ?arg ...?</source>
 
<source lang=tcl>string option arg ?arg ...?</source>
=Description=
+
==Description et options==
 
Réalise une parmi plusieurs opérations sur les chaînes, dépendant d'''option''. Les ''option''s légales (qui peuvent être abrégées) sont:
 
Réalise une parmi plusieurs opérations sur les chaînes, dépendant d'''option''. Les ''option''s légales (qui peuvent être abrégées) sont:
* '''string bytelength''' ''string'' : Renvoie une chaîne décimale donnant le nombre d'octets utilisés pour représenter ''string'' en mémoire. Comme UTF-8 utilise de un à trois octets pour représenter les caractères Unicode, la longueur en octets ne sera pas la même en général que la longueur des caractères. Les cas où un script gère la longueur en octets sont rares. Dans presque tous les cas, vous devrez utiliser l'opération '''string length'''.
+
===bytelength===
* '''string compare''' ?'''-nocase'''? ?'''-length int'''? ''string1 string2'' : Réalise une comparaison caractère-par-caractère des chaînes ''string1'' et ''string2''. Renvoie -1, 0, ou 1, dépendant de si ''string1'' est lexicographiquement inférieure à, égale à, ou supérieure à ''string2''. Si '''-length''' est spécifiée, alors seulement les ''length'' premiers caractères sont utilisés dans la comparaison. Si '''-length''' est négatif, elle est ignorée. Si '''-nocase''' est spécifié, alors les chaînes sont comparées sans tenir compte de la casse.
+
'''string bytelength''' ''string'' : Renvoie une chaîne décimale donnant le nombre d'octets utilisés pour représenter ''string'' en mémoire. Comme UTF-8 utilise de un à trois octets pour représenter les caractères Unicode, la longueur en octets ne sera pas la même en général que la longueur des caractères. Les cas où un script gère la longueur en octets sont rares. Dans presque tous les cas, vous devrez utiliser l'opération '''string length'''.
* '''string equal''' ?'''-nocase'''? ?'''-length int'''? ''string1 string2'' : Réalise une comparaison caractère-par-caractère des chaînes ''string1'' et ''string2''. Renvoie 1 si ''string1'' et ''string2'' sont identiques, ou 0 sinon. Si '''-length''' est spécifiée, alors seulement les ''length'' premiers caractères sont utilisés dans la comparaison Si '''-length''' est négatif, elle est ignorée Si '''-nocase''' est spécifié, alors la chaînes sont comparées sans tenir compte de la casse.
+
===compare===
* '''string first''' ''string1 string2'' ?''startIndex''? : Recherche dans ''string2'' la séquence de caractères qui correspond exactement au caractères de ''string1''. Si trouvé, retourne l' index du premier caractère de la première correspondance dans ''string2''. Sinon, retourne -1. Si ''startIndex'' est spécifié (dans toutes formes acceptées par la méthode '''index'''), alors la recherche est forcée de commencer avec le caractère de ''string2'' spécifié par l'index. Par exemple, '''string first a 0a23456789abcdef 5''' renverra '''10''', mais '''string first a 0123456789abcdef 11''' renverra '''-1'''.
+
'''string compare''' ?'''-nocase'''? ?'''-length int'''? ''string1 string2'' : Réalise une comparaison caractère-par-caractère des chaînes ''string1'' et ''string2''. Renvoie -1, 0, ou 1, dépendant de si ''string1'' est lexicographiquement inférieure à, égale à, ou supérieure à ''string2''. Si '''-length''' est spécifiée, alors seulement les ''length'' premiers caractères sont utilisés dans la comparaison. Si '''-length''' est négatif, elle est ignorée. Si '''-nocase''' est spécifié, alors les chaînes sont comparées sans tenir compte de la casse.
* '''string index''' ''string charIndex'': Renvoie le ''charIndex'' ième caractère de l'argument'' string'' Un ''charIndex'' de 0 corresponds au premier caractère de la chaîne ''charIndex'' peut être spécifié comme suit:
+
===equal===
** ''integer'' : Le caractère spécifié à cet index intégral
+
'''string equal''' ?'''-nocase'''? ?'''-length int'''? ''string1 string2'' : Réalise une comparaison caractère-par-caractère des chaînes ''string1'' et ''string2''. Renvoie 1 si ''string1'' et ''string2'' sont identiques, ou 0 sinon. Si '''-length''' est spécifiée, alors seulement les ''length'' premiers caractères sont utilisés dans la comparaison Si '''-length''' est négatif, elle est ignorée Si '''-nocase''' est spécifié, alors la chaînes sont comparées sans tenir compte de la casse.
** '''end''' : Le dernier caractère de la chaîne.
+
===first===
**'''end-'''''integer'' : Le dernier caractère de la chaîne moins l'offset entier spécifié (ex. '''end-1''' se refère à "c" dans "abcd"). Si ''charIndex'' est inférieur à 0 ou supérieur à ou égal à la longueur de la chaîne alors une chaîne vide est renvoyée.
+
'''string first''' ''string1 string2'' ?''startIndex''? : Recherche dans ''string2'' la séquence de caractères qui correspond exactement au caractères de ''string1''. Si trouvé, retourne l' index du premier caractère de la première correspondance dans ''string2''. Sinon, retourne -1. Si ''startIndex'' est spécifié (dans toutes formes acceptées par la méthode '''index'''), alors la recherche est forcée de commencer avec le caractère de ''string2'' spécifié par l'index. Par exemple, '''string first a 0a23456789abcdef 5''' renverra '''10''', mais '''string first a 0123456789abcdef 11''' renverra '''-1'''.
*'''string is''' ''class'' ?'''-strict'''? ?'''-failindex '''''varname''? ''string'' : Renvoie 1 si ''string'' est un membre valide de la classe de caractère spécifiée, retourne 0 autrement. Si '''-strict''' est spécifié, alors une chaîne vide retourne 0, autrement une chaîne vide renverra 1 avec toute classe. Si '''-failindex''' est spécifié, alors si la fonction retourne 0, l'index dans la chaîne où la classe n'est plus valide sera stocké dans la variable désignée par ''varname''. ''varname'' ne sera pas fixée si la fonction retourne 1. Les classes de caractère suivantes sont reconnues (le nom de classe peut être abrégé):
+
===index===
** '''alnum''' : N'importe quel caractère alphabétique ou chiffre Unicode.
+
'''string index''' ''string charIndex'': Renvoie le ''charIndex'' ième caractère de l'argument'' string'' Un ''charIndex'' de 0 corresponds au premier caractère de la chaîne ''charIndex'' peut être spécifié comme suit:
** '''alpha''' : N'importe quel caractère alphabétique Unicode.
+
* ''integer'' : Le caractère spécifié à cet index intégral
** '''ascii''' : N'importe quel caractère avec une valeur inférieure à \u0080 (ceux qui sont dans l'intervalle ascii 7-bit).
+
* '''end''' : Le dernier caractère de la chaîne.
** '''boolean''' : N'importe quelle des formes autorisées par '''Tcl_GetInt'''.
+
*'''end-'''''integer'' : Le dernier caractère de la chaîne moins l'offset entier spécifié (ex. '''end-1''' se refère à "c" dans "abcd"). Si ''charIndex'' est inférieur à 0 ou supérieur à ou égal à la longueur de la chaîne alors une chaîne vide est renvoyée.
** '''control''' : N'importe quel caractère de contrôle Unicode.
+
===is===
** '''digit''' : N'importe quel chiffre Unicode. Notez que ceci inclut les caractères en dehors de l'intervalle [0-9].
+
'''string is''' ''class'' ?'''-strict'''? ?'''-failindex '''''varname''? ''string'' : Renvoie 1 si ''string'' est un membre valide de la classe de caractère spécifiée, retourne 0 autrement. Si '''-strict''' est spécifié, alors une chaîne vide retourne 0, autrement une chaîne vide renverra 1 avec toute classe. Si '''-failindex''' est spécifié, alors si la fonction retourne 0, l'index dans la chaîne où la classe n'est plus valide sera stocké dans la variable désignée par ''varname''. ''varname'' ne sera pas fixée si la fonction retourne 1. Les classes de caractère suivantes sont reconnues (le nom de classe peut être abrégé):
** '''double''' : N'importe quelle des formes valides pour un double en Tcl, eventuellement entouré d'espaces. En cas de sous/débordement, 0 est renvoyé et ''varname'' contiendra -1.
+
* '''alnum''' : N'importe quel caractère alphabétique ou chiffre Unicode.
** '''false''' : N'importe quelle forme autorisée par '''Tcl_GetInt''' où la valeur est false.
+
* '''alpha''' : N'importe quel caractère alphabétique Unicode.
** '''graph''' : N'importe quel caractère Unicode imprimable, excepté l'espace.
+
* '''ascii''' : N'importe quel caractère avec une valeur inférieure à \u0080 (ceux qui sont dans l'intervalle ascii 7-bit).
** '''integer''' : N'importe quelle des formes valides pour un entier en Tcl, eventuellement entouré d'espaces. En cas de sous/débordement, 0 est renvoyé et ''varname'' contiendra -1.
+
* '''boolean''' : N'importe quelle des formes autorisées par '''Tcl_GetInt'''.
** '''lower''' : N'importe quel caractère alphabétique Unicode minuscule.
+
* '''control''' : N'importe quel caractère de contrôle Unicode.
** '''print''' : N'importe quel caractère Unicode imprimable, incluant l'espace.
+
* '''digit''' : N'importe quel chiffre Unicode. Notez que ceci inclut les caractères en dehors de l'intervalle [0-9].
** '''punct''' : N'importe quel caractère de ponctuation Unicode.
+
* '''double''' : N'importe quelle des formes valides pour un double en Tcl, eventuellement entouré d'espaces. En cas de sous/débordement, 0 est renvoyé et ''varname'' contiendra -1.
** '''space''' : N'importe quel caractère espace Unicode .
+
* '''false''' : N'importe quelle forme autorisée par '''Tcl_GetInt''' où la valeur est false.
** '''true''' : N'importe quelle forme autorisée par '''Tcl_GetInt''' où la valeur est true.
+
* '''graph''' : N'importe quel caractère Unicode imprimable, excepté l'espace.
** '''upper''' : N'importe quel caractère alphabétique Unicode majuscule.
+
* '''integer''' : N'importe quelle des formes valides pour un entier en Tcl, eventuellement entouré d'espaces. En cas de sous/débordement, 0 est renvoyé et ''varname'' contiendra -1.
** '''wordchar''' : N'importe quel caractère d'un mot Unicode. Donc tout caractère alphanumérique, et tout caractères connecteur ou de ponctuation Unicode (ex. underscore).
+
* '''lower''' : N'importe quel caractère alphabétique Unicode minuscule.
** '''xdigit''' : N'importe quel caractère chiffre hexadécimal ([0-9A-Fa-f]).
+
* '''print''' : N'importe quel caractère Unicode imprimable, incluant l'espace.
 +
* '''punct''' : N'importe quel caractère de ponctuation Unicode.
 +
* '''space''' : N'importe quel caractère espace Unicode .
 +
* '''true''' : N'importe quelle forme autorisée par '''Tcl_GetInt''' où la valeur est true.
 +
* '''upper''' : N'importe quel caractère alphabétique Unicode majuscule.
 +
* '''wordchar''' : N'importe quel caractère d'un mot Unicode. Donc tout caractère alphanumérique, et tout caractères connecteur ou de ponctuation Unicode (ex. underscore).
 +
* '''xdigit''' : N'importe quel caractère chiffre hexadécimal ([0-9A-Fa-f]).
 
{{Attention|Dans le cas de '''boolean''', '''true''' et '''false''', si la fonction renvoie 0, alors le ''varname'' sera toujours fixé à 0, ceci étant dû à la nature variée d'une valeur booléenne valide.}}
 
{{Attention|Dans le cas de '''boolean''', '''true''' et '''false''', si la fonction renvoie 0, alors le ''varname'' sera toujours fixé à 0, ceci étant dû à la nature variée d'une valeur booléenne valide.}}
* '''string last '''''string1 string2'' ?''startIndex''? : Recherche dans ''string2'' la séquence de caractères qui correspond exactement au caractères de ''string1''. Si trouvé, retourne l'index du premier caractère de la dernière correspondance dans ''string2''. S'il n'y a pas de correspondance, alors retourne -1. Si ''startIndex'' est spécifié (dans une des formes acceptées par la méthode '''index'''), alors seulement les caractères dans ''string2'' à ou avant le ''startIndex'' spécifié seront pris en compte dans la recherche. Par exemple, '''string last a 0a23456789abcdef 15''' renverra '''10''', mais '''string last a 0a23456789abcdef 9''' renverra '''1'''.
+
===last===
* '''string length '''''string'' : Renvoie une chaîne décimale donnant le nombre de caractères dans ''string''. Notez que ce n'est pas nécéssairement le même que le nombre d'octets utilisé pour stocker la chaîne.
+
'''string last '''''string1 string2'' ?''startIndex''? : Recherche dans ''string2'' la séquence de caractères qui correspond exactement au caractères de ''string1''. Si trouvé, retourne l'index du premier caractère de la dernière correspondance dans ''string2''. S'il n'y a pas de correspondance, alors retourne -1. Si ''startIndex'' est spécifié (dans une des formes acceptées par la méthode '''index'''), alors seulement les caractères dans ''string2'' à ou avant le ''startIndex'' spécifié seront pris en compte dans la recherche. Par exemple, '''string last a 0a23456789abcdef 15''' renverra '''10''', mais '''string last a 0a23456789abcdef 9''' renverra '''1'''.
* '''string map''' ?'''-nocase'''? ''charMap string'' : Remplace les caractères dans ''string'' basés sur les paires clé-valeur dans ''charMap'' ''charMap'' est une liste de ''key value key value'' ... comme sous la forme renvoyée par '''array get'''. Chaque instance d'une clé dans la chaîne sera remplacée par sa valeur correspondante. Si '''-nocase''' est spécifié, alors la correspondance est établie sans tenir compte de la casse. L'ensemble ''key'' et ''value'' peut être de multiples caractères. Le remplacement est fait d'une manière ordonnée, donc la clé apparaissant en premier dans la liste sera vérifiée en premier, et ainsi de suite ''string'' est parcourue un seule fois, donc les premiers remplacements de clé n'affecteront pas les correspondances suivantes. Par exemple, ''string map {abc 1 ab 2 a 3 1 0} 1abcaababcabababc'' renverra la chaîne '''01321221'''.
+
===length===
* '''string match''' ?'''-nocase'''? ''pattern'' ''string'' : Teste si ''pattern'' correspond à ''string''; retourne 1 si oui, 0 sinon. Si '''-nocase''' est spécifié, alors le modèle est comparé à la chaîne sans tenir compte de la casse. Pour que deux chaînes correspondent, leurs contenus doivent être identiques excepté que les séquences spéciales suivantes peuvent apparaitre dans ''pattern'':
+
'''string length '''''string'' : Renvoie une chaîne décimale donnant le nombre de caractères dans ''string''. Notez que ce n'est pas nécéssairement le même que le nombre d'octets utilisé pour stocker la chaîne.
** '''*''' : Correspond à toute séquence de caractères dans ''string'', incluant une chaîne vide.
+
===map===
** '''?''' : Correspond à quelconque caractère unique dans ''string''.
+
'''string map''' ?'''-nocase'''? ''charMap string'' : Remplace les caractères dans ''string'' basés sur les paires clé-valeur dans ''charMap'' ''charMap'' est une liste de ''key value key value'' ... comme sous la forme renvoyée par '''array get'''. Chaque instance d'une clé dans la chaîne sera remplacée par sa valeur correspondante. Si '''-nocase''' est spécifié, alors la correspondance est établie sans tenir compte de la casse. L'ensemble ''key'' et ''value'' peut être de multiples caractères. Le remplacement est fait d'une manière ordonnée, donc la clé apparaissant en premier dans la liste sera vérifiée en premier, et ainsi de suite ''string'' est parcourue un seule fois, donc les premiers remplacements de clé n'affecteront pas les correspondances suivantes. Par exemple, ''string map {abc 1 ab 2 a 3 1 0} 1abcaababcabababc'' renverra la chaîne '''01321221'''.
** '''[chars]''' : Correspond à tout caractère de l'ensemble indiqué par ''chars''. Si une séquence de la forme ''x'''-'''y'' apparait dans ''chars'', alors tout caractère entre ''x'' et ''y'', inclus, correspondra. Quand utilisé avec '''-nocase''', les points extrèmes de l'intervalle sont convertis en minuscule en premier. En considérant que {[A-z]} correspond à '_' quand la correspondance est sensible à la casse ('_' est entre 'Z' et 'a'), avec '''-nocase''' c'est consideré comme {[A-Za-z]} (et probablement ce qui etait exprimé précedemment).
+
===match===
** '''\x''' : Correspond au caractère unique ''x''. Ceci fournit un moyen d'éviter l'interprétation spéciale des caractères '''*?[[]]\''' dans ''pattern''.
+
'''string match''' ?'''-nocase'''? ''pattern'' ''string'' : Teste si ''pattern'' correspond à ''string''; retourne 1 si oui, 0 sinon. Si '''-nocase''' est spécifié, alors le modèle est comparé à la chaîne sans tenir compte de la casse. Pour que deux chaînes correspondent, leurs contenus doivent être identiques excepté que les séquences spéciales suivantes peuvent apparaitre dans ''pattern'':
* '''string range '''''string first last'' : Renvoie un intervalle de caractères consécutifs de ''string'', en commençant par le caractère dont l'index est ''first'' et finissant par le caractère dont l'index est ''last''. Un index de 0 se réfère au premier caractère de la chaîne. ''first'' et ''last'' peuvent être spécifiés comme dans la méthode '''index'''. Si ''first'' est inférieur à zéro alors il est traité comme si c'était zéro, et si ''last'' est supérieur à ou égal à longueur de la chaîne alors il est traité comme si c'était '''end'''. Si ''first'' est supérieur à ''last'' alors une chaîne vide est renvoyée.
+
* '''*''' : Correspond à toute séquence de caractères dans ''string'', incluant une chaîne vide.
* '''string repeat '''''string count'' : Renvoie ''string'' répétée ''count'' fois.
+
* '''?''' : Correspond à quelconque caractère unique dans ''string''.
* '''string replace '''''string first last'' ?''newstring''? : Supprime un intervalle de caractères consecutifs de ''string'', commençant avec le caractère dont l'index est ''first'' et finissant avec le caractère dont l'index est ''last.'' Un index de 0 se réfère au premier caractère de la chaîne ''First'' et ''last'' peuvent être spécifiés comme dans la méthode '''index'''. Si ''newstring'' est spécifiée, alors elle est placée dans l'intervalle des caractères supprimés. Si ''first'' est inférieur à zéro alors il est traité comme si c'était zéro, et si ''last'' est supérieur ou égal à la longueur de la chaîne alors il est traité comme si c'était '''end'''. Si ''first'' est supérieur à ''last'' ou la longueur de la chaîne initiale, ou ''last'' inférieur à 0, alors la chaîne initiale est renvoyé inchangée.
+
* '''[chars]''' : Correspond à tout caractère de l'ensemble indiqué par ''chars''. Si une séquence de la forme ''x'''-'''y'' apparait dans ''chars'', alors tout caractère entre ''x'' et ''y'', inclus, correspondra. Quand utilisé avec '''-nocase''', les points extrèmes de l'intervalle sont convertis en minuscule en premier. En considérant que {[A-z]} correspond à '_' quand la correspondance est sensible à la casse ('_' est entre 'Z' et 'a'), avec '''-nocase''' c'est consideré comme {[A-Za-z]} (et probablement ce qui etait exprimé précedemment).
* '''string tolower '''''string'' ?''first''? ?''last''? : Renvoie une valeur égale à ''string'' excepté que toute lettre en majuscule (ou titre) aura été convertie en minuscule. Si ''first'' est spécifié, il se réfère à l'index du premier caractère dans la chaîne ou commencer les modifications. Si ''last'' est spécifié, il se réfère à l'index du caractère dans la chaîne ou arrêter (inclus) ''first'' et ''last'' peuvent être spécifiés comme dans la méthode '''index'''.
+
* '''\x''' : Correspond au caractère unique ''x''. Ceci fournit un moyen d'éviter l'interprétation spéciale des caractères '''*?[[]]\''' dans ''pattern''.
* '''string totitle '''''string'' ?''first''? ?''last''? : Renvoie une valeur égale à ''string'' excepté que le premier caractère de ''string'' est converti en sa variante Unicode titre (ou majuscule s'il n'y a pas de variante titre) et le reste de la chaîne est converti en minuscule. Si ''first'' est spécifié, il se réfère à l'index du premier caractère dans la chaîne ou commencer les modifications. Si ''last'' est spécifié, il se réfère à l'index du caractère dans la chaîne ou arrêter (inclus). ''first'' et ''last'' peuvent être spécifiés comme dans la méthode '''index'''.
+
===range===
* '''string toupper '''''string'' ?''first''? ?''last''? : Renvoie une valeur égale à ''string'' excepté que toute lettre minuscule (ou titre) aura été convertie en majuscule. Si ''first'' est spécifié, il se réfère à l'index du premier caractère dans la chaîne ou commencer les modifications. Si ''last'' est spécifié, il se réfère à l'index du caractère dans la chaîne ou arrêter (inclus). ''first'' et ''last'' peuvent être spécifiés comme dans la méthode '''index'''.
+
'''string range '''''string first last'' : Renvoie un intervalle de caractères consécutifs de ''string'', en commençant par le caractère dont l'index est ''first'' et finissant par le caractère dont l'index est ''last''. Un index de 0 se réfère au premier caractère de la chaîne. ''first'' et ''last'' peuvent être spécifiés comme dans la méthode '''index'''. Si ''first'' est inférieur à zéro alors il est traité comme si c'était zéro, et si ''last'' est supérieur à ou égal à longueur de la chaîne alors il est traité comme si c'était '''end'''. Si ''first'' est supérieur à ''last'' alors une chaîne vide est renvoyée.
* '''string trim '''''string'' ?''chars''? : Renvoie une valeur égale à ''string'' excepté que tous les caractères en tête ou à la fin de l'ensemble indiqué par ''chars'' sont enlevés. Si ''chars'' n'est pas spécifié alors tous les espaces sont enlevés (les espaces, tabulations, saut de lignes, et retour chariot).
+
===repeat===
* '''string trimleft '''''string'' ?''chars''? : Renvoie une valeur égale à ''string'' excepté que tous les caractères en tête de l'ensemble indiqué par ''chars'' sont enlevés. Si ''chars'' n'est pas spécifié alors tous les espaces sont enlevés (les espaces, tabulations, saut de lignes, et retour chariot).
+
'''string repeat '''''string count'' : Renvoie ''string'' répétée ''count'' fois.
* '''string trimright '''''string'' ?''chars''? : Renvoie une valeur égale à ''string'' excepté que tous les caractères à la fin de l'ensemble indiqué par ''chars'' sont enlevés. Si ''chars'' n'est pas spécifié alors tous les espaces sont enlevés (les espaces, tabulations, saut de lignes, et retour chariot).
+
===replace===
* '''string wordend '''''string charIndex'' : Renvoie l'index du caractère juste après le dernier dans le mot contenant le caractère ''charIndex'' de ''string''. ''charIndex'' peut être spécifié comme dans la méthode '''index'''. Un mot est consideré comme tout intervalle contigu de caractères alphanumeriques (lettres Unicode ou chiffres décimaux ) ou underscore (connecteur de ponctuation Unicode), ou tout caractère unique autre que ceux-ci.
+
'''string replace '''''string first last'' ?''newstring''? : Supprime un intervalle de caractères consecutifs de ''string'', commençant avec le caractère dont l'index est ''first'' et finissant avec le caractère dont l'index est ''last.'' Un index de 0 se réfère au premier caractère de la chaîne ''First'' et ''last'' peuvent être spécifiés comme dans la méthode '''index'''. Si ''newstring'' est spécifiée, alors elle est placée dans l'intervalle des caractères supprimés. Si ''first'' est inférieur à zéro alors il est traité comme si c'était zéro, et si ''last'' est supérieur ou égal à la longueur de la chaîne alors il est traité comme si c'était '''end'''. Si ''first'' est supérieur à ''last'' ou la longueur de la chaîne initiale, ou ''last'' inférieur à 0, alors la chaîne initiale est renvoyé inchangée.
* '''string wordstart '''''string charIndex'' : Renvoie l'index du premier caractère dans le mot contenant le caractère ''charIndex'' de ''string'' ''charIndex'' peut être spécifié comme dans la méthode '''index'''. Un mot est consideré comme tout intervalle contigu de caractères alphanumeriques (lettres Unicode ou chiffres décimaux ) ou underscore (connecteur de ponctuation Unicode), ou tout caractère unique autre que ceux-ci.
+
===tolower===
 +
'''string tolower '''''string'' ?''first''? ?''last''? : Renvoie une valeur égale à ''string'' excepté que toute lettre en majuscule (ou titre) aura été convertie en minuscule. Si ''first'' est spécifié, il se réfère à l'index du premier caractère dans la chaîne ou commencer les modifications. Si ''last'' est spécifié, il se réfère à l'index du caractère dans la chaîne ou arrêter (inclus) ''first'' et ''last'' peuvent être spécifiés comme dans la méthode '''index'''.
 +
===totitle===
 +
'''string totitle '''''string'' ?''first''? ?''last''? : Renvoie une valeur égale à ''string'' excepté que le premier caractère de ''string'' est converti en sa variante Unicode titre (ou majuscule s'il n'y a pas de variante titre) et le reste de la chaîne est converti en minuscule. Si ''first'' est spécifié, il se réfère à l'index du premier caractère dans la chaîne ou commencer les modifications. Si ''last'' est spécifié, il se réfère à l'index du caractère dans la chaîne ou arrêter (inclus). ''first'' et ''last'' peuvent être spécifiés comme dans la méthode '''index'''.
 +
===toupper===
 +
'''string toupper '''''string'' ?''first''? ?''last''? : Renvoie une valeur égale à ''string'' excepté que toute lettre minuscule (ou titre) aura été convertie en majuscule. Si ''first'' est spécifié, il se réfère à l'index du premier caractère dans la chaîne ou commencer les modifications. Si ''last'' est spécifié, il se réfère à l'index du caractère dans la chaîne ou arrêter (inclus). ''first'' et ''last'' peuvent être spécifiés comme dans la méthode '''index'''.
 +
===trim===
 +
'''string trim '''''string'' ?''chars''? : Renvoie une valeur égale à ''string'' excepté que tous les caractères en tête ou à la fin de l'ensemble indiqué par ''chars'' sont enlevés. Si ''chars'' n'est pas spécifié alors tous les espaces sont enlevés (les espaces, tabulations, saut de lignes, et retour chariot).
 +
===trimleft===
 +
'''string trimleft '''''string'' ?''chars''? : Renvoie une valeur égale à ''string'' excepté que tous les caractères en tête de l'ensemble indiqué par ''chars'' sont enlevés. Si ''chars'' n'est pas spécifié alors tous les espaces sont enlevés (les espaces, tabulations, saut de lignes, et retour chariot).
 +
===trimright===
 +
'''string trimright '''''string'' ?''chars''? : Renvoie une valeur égale à ''string'' excepté que tous les caractères à la fin de l'ensemble indiqué par ''chars'' sont enlevés. Si ''chars'' n'est pas spécifié alors tous les espaces sont enlevés (les espaces, tabulations, saut de lignes, et retour chariot).
 +
===wordend===
 +
'''string wordend '''''string charIndex'' : Renvoie l'index du caractère juste après le dernier dans le mot contenant le caractère ''charIndex'' de ''string''. ''charIndex'' peut être spécifié comme dans la méthode '''index'''. Un mot est consideré comme tout intervalle contigu de caractères alphanumériques (lettres Unicode ou chiffres décimaux ) ou underscore (connecteur de ponctuation Unicode), ou tout caractère unique autre que ceux-ci.
 +
===wordstart===
 +
'''string wordstart '''''string charIndex'' : Renvoie l'index du premier caractère dans le mot contenant le caractère ''charIndex'' de ''string'' ''charIndex'' peut être spécifié comme dans la méthode '''index'''. Un mot est consideré comme tout intervalle contigu de caractères alphanumeriques (lettres Unicode ou chiffres décimaux ) ou underscore (connecteur de ponctuation Unicode), ou tout caractère unique autre que ceux-ci.
  
=Voir également=
+
==Voir également==
 
[[append]], [[encoding]], [[Manipulation de chaines]]
 
[[append]], [[encoding]], [[Manipulation de chaines]]
 
* http://wfr.tcl.tk/145
 
* http://wfr.tcl.tk/145

Latest revision as of 13:21, 11 November 2020

string - Manipulation des chaînes

Syntaxe

string option arg ?arg ...?

Description et options

Réalise une parmi plusieurs opérations sur les chaînes, dépendant d'option. Les options légales (qui peuvent être abrégées) sont:

bytelength

string bytelength string : Renvoie une chaîne décimale donnant le nombre d'octets utilisés pour représenter string en mémoire. Comme UTF-8 utilise de un à trois octets pour représenter les caractères Unicode, la longueur en octets ne sera pas la même en général que la longueur des caractères. Les cas où un script gère la longueur en octets sont rares. Dans presque tous les cas, vous devrez utiliser l'opération string length.

compare

string compare ?-nocase? ?-length int? string1 string2 : Réalise une comparaison caractère-par-caractère des chaînes string1 et string2. Renvoie -1, 0, ou 1, dépendant de si string1 est lexicographiquement inférieure à, égale à, ou supérieure à string2. Si -length est spécifiée, alors seulement les length premiers caractères sont utilisés dans la comparaison. Si -length est négatif, elle est ignorée. Si -nocase est spécifié, alors les chaînes sont comparées sans tenir compte de la casse.

equal

string equal ?-nocase? ?-length int? string1 string2 : Réalise une comparaison caractère-par-caractère des chaînes string1 et string2. Renvoie 1 si string1 et string2 sont identiques, ou 0 sinon. Si -length est spécifiée, alors seulement les length premiers caractères sont utilisés dans la comparaison Si -length est négatif, elle est ignorée Si -nocase est spécifié, alors la chaînes sont comparées sans tenir compte de la casse.

first

string first string1 string2 ?startIndex? : Recherche dans string2 la séquence de caractères qui correspond exactement au caractères de string1. Si trouvé, retourne l' index du premier caractère de la première correspondance dans string2. Sinon, retourne -1. Si startIndex est spécifié (dans toutes formes acceptées par la méthode index), alors la recherche est forcée de commencer avec le caractère de string2 spécifié par l'index. Par exemple, string first a 0a23456789abcdef 5 renverra 10, mais string first a 0123456789abcdef 11 renverra -1.

index

string index string charIndex: Renvoie le charIndex ième caractère de l'argument string Un charIndex de 0 corresponds au premier caractère de la chaîne charIndex peut être spécifié comme suit:

  • integer : Le caractère spécifié à cet index intégral
  • end : Le dernier caractère de la chaîne.
  • end-integer : Le dernier caractère de la chaîne moins l'offset entier spécifié (ex. end-1 se refère à "c" dans "abcd"). Si charIndex est inférieur à 0 ou supérieur à ou égal à la longueur de la chaîne alors une chaîne vide est renvoyée.

is

string is class ?-strict? ?-failindex varname? string : Renvoie 1 si string est un membre valide de la classe de caractère spécifiée, retourne 0 autrement. Si -strict est spécifié, alors une chaîne vide retourne 0, autrement une chaîne vide renverra 1 avec toute classe. Si -failindex est spécifié, alors si la fonction retourne 0, l'index dans la chaîne où la classe n'est plus valide sera stocké dans la variable désignée par varname. varname ne sera pas fixée si la fonction retourne 1. Les classes de caractère suivantes sont reconnues (le nom de classe peut être abrégé):

  • alnum : N'importe quel caractère alphabétique ou chiffre Unicode.
  • alpha : N'importe quel caractère alphabétique Unicode.
  • ascii : N'importe quel caractère avec une valeur inférieure à \u0080 (ceux qui sont dans l'intervalle ascii 7-bit).
  • boolean : N'importe quelle des formes autorisées par Tcl_GetInt.
  • control : N'importe quel caractère de contrôle Unicode.
  • digit : N'importe quel chiffre Unicode. Notez que ceci inclut les caractères en dehors de l'intervalle [0-9].
  • double : N'importe quelle des formes valides pour un double en Tcl, eventuellement entouré d'espaces. En cas de sous/débordement, 0 est renvoyé et varname contiendra -1.
  • false : N'importe quelle forme autorisée par Tcl_GetInt où la valeur est false.
  • graph : N'importe quel caractère Unicode imprimable, excepté l'espace.
  • integer : N'importe quelle des formes valides pour un entier en Tcl, eventuellement entouré d'espaces. En cas de sous/débordement, 0 est renvoyé et varname contiendra -1.
  • lower : N'importe quel caractère alphabétique Unicode minuscule.
  • print : N'importe quel caractère Unicode imprimable, incluant l'espace.
  • punct : N'importe quel caractère de ponctuation Unicode.
  • space : N'importe quel caractère espace Unicode .
  • true : N'importe quelle forme autorisée par Tcl_GetInt où la valeur est true.
  • upper : N'importe quel caractère alphabétique Unicode majuscule.
  • wordchar : N'importe quel caractère d'un mot Unicode. Donc tout caractère alphanumérique, et tout caractères connecteur ou de ponctuation Unicode (ex. underscore).
  • xdigit : N'importe quel caractère chiffre hexadécimal ([0-9A-Fa-f]).
Attention.png Dans le cas de boolean, true et false, si la fonction renvoie 0, alors le varname sera toujours fixé à 0, ceci étant dû à la nature variée d'une valeur booléenne valide.

last

string last string1 string2 ?startIndex? : Recherche dans string2 la séquence de caractères qui correspond exactement au caractères de string1. Si trouvé, retourne l'index du premier caractère de la dernière correspondance dans string2. S'il n'y a pas de correspondance, alors retourne -1. Si startIndex est spécifié (dans une des formes acceptées par la méthode index), alors seulement les caractères dans string2 à ou avant le startIndex spécifié seront pris en compte dans la recherche. Par exemple, string last a 0a23456789abcdef 15 renverra 10, mais string last a 0a23456789abcdef 9 renverra 1.

length

string length string : Renvoie une chaîne décimale donnant le nombre de caractères dans string. Notez que ce n'est pas nécéssairement le même que le nombre d'octets utilisé pour stocker la chaîne.

map

string map ?-nocase? charMap string : Remplace les caractères dans string basés sur les paires clé-valeur dans charMap charMap est une liste de key value key value ... comme sous la forme renvoyée par array get. Chaque instance d'une clé dans la chaîne sera remplacée par sa valeur correspondante. Si -nocase est spécifié, alors la correspondance est établie sans tenir compte de la casse. L'ensemble key et value peut être de multiples caractères. Le remplacement est fait d'une manière ordonnée, donc la clé apparaissant en premier dans la liste sera vérifiée en premier, et ainsi de suite string est parcourue un seule fois, donc les premiers remplacements de clé n'affecteront pas les correspondances suivantes. Par exemple, string map {abc 1 ab 2 a 3 1 0} 1abcaababcabababc renverra la chaîne 01321221.

match

string match ?-nocase? pattern string : Teste si pattern correspond à string; retourne 1 si oui, 0 sinon. Si -nocase est spécifié, alors le modèle est comparé à la chaîne sans tenir compte de la casse. Pour que deux chaînes correspondent, leurs contenus doivent être identiques excepté que les séquences spéciales suivantes peuvent apparaitre dans pattern:

  • * : Correspond à toute séquence de caractères dans string, incluant une chaîne vide.
  • ? : Correspond à quelconque caractère unique dans string.
  • [chars] : Correspond à tout caractère de l'ensemble indiqué par chars. Si une séquence de la forme x-y apparait dans chars, alors tout caractère entre x et y, inclus, correspondra. Quand utilisé avec -nocase, les points extrèmes de l'intervalle sont convertis en minuscule en premier. En considérant que {[A-z]} correspond à '_' quand la correspondance est sensible à la casse ('_' est entre 'Z' et 'a'), avec -nocase c'est consideré comme {[A-Za-z]} (et probablement ce qui etait exprimé précedemment).
  • \x : Correspond au caractère unique x. Ceci fournit un moyen d'éviter l'interprétation spéciale des caractères *?[[]]\ dans pattern.

range

string range string first last : Renvoie un intervalle de caractères consécutifs de string, en commençant par le caractère dont l'index est first et finissant par le caractère dont l'index est last. Un index de 0 se réfère au premier caractère de la chaîne. first et last peuvent être spécifiés comme dans la méthode index. Si first est inférieur à zéro alors il est traité comme si c'était zéro, et si last est supérieur à ou égal à longueur de la chaîne alors il est traité comme si c'était end. Si first est supérieur à last alors une chaîne vide est renvoyée.

repeat

string repeat string count : Renvoie string répétée count fois.

replace

string replace string first last ?newstring? : Supprime un intervalle de caractères consecutifs de string, commençant avec le caractère dont l'index est first et finissant avec le caractère dont l'index est last. Un index de 0 se réfère au premier caractère de la chaîne First et last peuvent être spécifiés comme dans la méthode index. Si newstring est spécifiée, alors elle est placée dans l'intervalle des caractères supprimés. Si first est inférieur à zéro alors il est traité comme si c'était zéro, et si last est supérieur ou égal à la longueur de la chaîne alors il est traité comme si c'était end. Si first est supérieur à last ou la longueur de la chaîne initiale, ou last inférieur à 0, alors la chaîne initiale est renvoyé inchangée.

tolower

string tolower string ?first? ?last? : Renvoie une valeur égale à string excepté que toute lettre en majuscule (ou titre) aura été convertie en minuscule. Si first est spécifié, il se réfère à l'index du premier caractère dans la chaîne ou commencer les modifications. Si last est spécifié, il se réfère à l'index du caractère dans la chaîne ou arrêter (inclus) first et last peuvent être spécifiés comme dans la méthode index.

totitle

string totitle string ?first? ?last? : Renvoie une valeur égale à string excepté que le premier caractère de string est converti en sa variante Unicode titre (ou majuscule s'il n'y a pas de variante titre) et le reste de la chaîne est converti en minuscule. Si first est spécifié, il se réfère à l'index du premier caractère dans la chaîne ou commencer les modifications. Si last est spécifié, il se réfère à l'index du caractère dans la chaîne ou arrêter (inclus). first et last peuvent être spécifiés comme dans la méthode index.

toupper

string toupper string ?first? ?last? : Renvoie une valeur égale à string excepté que toute lettre minuscule (ou titre) aura été convertie en majuscule. Si first est spécifié, il se réfère à l'index du premier caractère dans la chaîne ou commencer les modifications. Si last est spécifié, il se réfère à l'index du caractère dans la chaîne ou arrêter (inclus). first et last peuvent être spécifiés comme dans la méthode index.

trim

string trim string ?chars? : Renvoie une valeur égale à string excepté que tous les caractères en tête ou à la fin de l'ensemble indiqué par chars sont enlevés. Si chars n'est pas spécifié alors tous les espaces sont enlevés (les espaces, tabulations, saut de lignes, et retour chariot).

trimleft

string trimleft string ?chars? : Renvoie une valeur égale à string excepté que tous les caractères en tête de l'ensemble indiqué par chars sont enlevés. Si chars n'est pas spécifié alors tous les espaces sont enlevés (les espaces, tabulations, saut de lignes, et retour chariot).

trimright

string trimright string ?chars? : Renvoie une valeur égale à string excepté que tous les caractères à la fin de l'ensemble indiqué par chars sont enlevés. Si chars n'est pas spécifié alors tous les espaces sont enlevés (les espaces, tabulations, saut de lignes, et retour chariot).

wordend

string wordend string charIndex : Renvoie l'index du caractère juste après le dernier dans le mot contenant le caractère charIndex de string. charIndex peut être spécifié comme dans la méthode index. Un mot est consideré comme tout intervalle contigu de caractères alphanumériques (lettres Unicode ou chiffres décimaux ) ou underscore (connecteur de ponctuation Unicode), ou tout caractère unique autre que ceux-ci.

wordstart

string wordstart string charIndex : Renvoie l'index du premier caractère dans le mot contenant le caractère charIndex de string charIndex peut être spécifié comme dans la méthode index. Un mot est consideré comme tout intervalle contigu de caractères alphanumeriques (lettres Unicode ou chiffres décimaux ) ou underscore (connecteur de ponctuation Unicode), ou tout caractère unique autre que ceux-ci.

Voir également

append, encoding, Manipulation de chaines