Aller au contenu

« Module:String/Documentation » : différence entre les versions

Une page de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Aucun résumé des modifications
 
(23 versions intermédiaires par 7 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
<includeonly>{{Shared Template Warning|Module:String|Module:String}}</includeonly>
Le module String (un mot [[anglais]] signifiant ''chaîne de caractères'') permet de manipuler des chaînes de caractères.
Le module String (un mot [[anglais]] signifiant ''chaîne de caractères'') permet de manipuler des chaînes de caractères.
Les fonctions fournies par ce module sont prévues pour un appel depuis des '''modèles'''. Appeler ce module depuis un autre module a peu d'intérêt car les fonctions fournies reprennent les fonctions natives de lua et les fonctions fournies par la bibliothèque [[mw:Extension:Scribunto/Lua reference manual/fr#Bibliothèque ustring|mw.ustring]].


== Utilisation ==
== Utilisation ==


Fonctions exportables :
Fonctions exportables :
* <code>len</code> – renvoie le nombre de caractères dans une chaîne, prend en compte les caractères multi-octets (''len'' ou ''length'' signifie ''taille'', ''longueur'')
* <code>[[Module:String#L-43|len]]</code> – renvoie le nombre de caractères dans une chaîne, prend en compte les caractères multi-octets (''len'' ou ''length'' signifie ''taille'', ''longueur'')
* <code>sub</code> – renvoie une partie de la chaîne de caractères (''sub'' ou ''sub-string'' signifie ''sous-chaîne'')
* <code>[[Module:String#L-72|sub]]</code> – renvoie une partie de la chaîne de caractères (''sub'' ou ''sub-string'' signifie ''sous-chaîne'')
* <code>trim</code> – renvoie la chaîne de caractères en supprimant les éventuels espaces au début et/ou à la fin
* <code>[[Module:String#L-150|match]]</code> – renvoie la première correspondance d'un motif dans une chaîne de caractères
* <code>[[Module:String#L-243|pos]]</code> – renvoie le caractère à une position donnée d'une chaîne de caractères
* <code>[[Module:String#L-284|find]]</code> – renvoie les indices de fin de chaque occurrence d'un motif dans une chaîne de caractères
* <code>[[Module:String#L-325|replace]]</code> – renvoie la chaîne de caractères initiale dans laquelle un motif est remplacé par un autre
* <code>[[Module:String#L-366|rep]]</code> – renvoie la chaîne de caractères passée en argument répété autant de fois que souhaité
* <code>[[Module:String#L-383|count]]</code> – renvoie le nombre d'occurrences d'un motif dans une chaîne de caractères


Autres fonctions : « ''Helper functions'' » (fonctions qui auraient pu être locales, mais pour une raison inconnue sont publiques)
Autres fonctions : <br/>
* <code>[[Module:String#L-402|_getParameters]]</code> – permet l'extraction dans un tableau des arguments du frame
À compléter…
* <code>[[Module:String#L-422|_error]]</code> – permet la mise en forme des messages d'erreur

* <code>[[Module:String#L-443|_getBoolean]]</code> – permet l'interprétation de chaînes de caractères comme booléens
Modules externes et autres éléments dont ce module a besoin pour fonctionner : <br/>
* <code>[[Module:String#L-366|_escapePattern]]</code> – permet d'« échapper » tous les caractères spéciaux afin qu'ils soient pris en compte comme du texte et non comme des paramètres d'un motif.
À compléter…


Modules externes et autres éléments dont ce module a besoin pour fonctionner :
* Bibliothèque [[mw:Extension:Scribunto/Lua reference manual/fr#Bibliothèque ustring|mw.ustring]] :
** <code>[[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.len|mw.ustring.len]]</code> – Renvoie la longueur d'une chaîne de caractères ;
** <code>[[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.sub|mw.ustring.sub]]</code> – Renvoie une tranche d'une chaîne de caractères ;
** <code>[[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.gsub|mw.ustring.gsub]]</code> – Renvoie une chaîne de caractères dans laquelle toutes les occurrences d'un motif sont remplacées par une chaîne de remplacement ;
** <code>[[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.match|mw.ustring.match]]</code> – Renvoie la première correspondance d'un motif dans une chaine de caractères ;
** <code>[[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.gmatch|mw.ustring.gmatch]]</code> – Renvoie un [[itérateur]] contenant toutes les correspondances d'un motif dans une chaine de caractères ;
** <code>[[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.find|mw.ustring.find]]</code> – Renvoie les indices de fin des occurrences d'un motif dans une chaîne de caractères ;
** <code>[[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.rep|mw.ustring.rep]]</code> – Renvoie une chaîne de caractères répétée plusieurs fois ;
* <code>[[mw:Extension:Scribunto/Lua reference manual/fr#mw.getCurrentFrame|mw.getCurrentFrame]]</code> – Renvoie l'[[mw:Extension:Scribunto/Lua reference manual/fr#L'objet Frame|objet frame]] courant, généralement l'objet frame du dernier appel à <code>#invoke</code>.


=== len ===
=== len ===
Adapte [[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.len|mw.ustring.len]] pour un appel depuis un modèle.


Cette fonction renvoie la longueur de la chaîne de caractère cible.
This function returns the length of the target string.


;Utilisation :
Usage:
<pre>{{#invoke:String|len|target_string}}</pre>
<pre>{{#invoke:String|len|chaîne_de_caractère_cible}}</pre>
OU
OR
<pre>{{#invoke:String|len|s=target_string}}</pre>
<pre>{{#invoke:String|len|s=chaîne_de_caractère_cible}}</pre>


;Paramètres :
Parameters
* <code>s</code> : la chaîne de caractère dont la longueur doit être signalée
*s: The string whose length to report


S'il est appelé à l'aide de paramètres nommés, MediaWiki supprimera automatiquement tout espace blanc de début ou de fin de la chaîne de caractère cible.
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string.


=== sub ===
=== sub ===
Adapte [[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.sub|mw.ustring.sub]] pour un appel depuis un modèle.


Cette fonction renvoie une sous-chaîne de caractère spécifiée par des indices numériques d'une chaîne cible.
This function returns a substring of the target string at specified indices.


;Utilisation :
Usage:
<pre>{{#invoke:String|sub|target_string|start_index|end_index}}</pre>
<pre>{{#invoke:String|sub|chaîne_de_caractère_cible|indice_de_départ|indice_de_fin}}</pre>
OU
OR
<pre>{{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}</pre>
<pre>{{#invoke:String|sub|s=chaîne_de_caractère_cible|i=indice_de_départ|j=indice_de_fin}}</pre>


;Paramètres :
Parameters
*<code>s</code> : la chaîne de caractère de départ
*s: The string to return a subset of
*<code>i</code> : le début de la sous-chaîne de caractère commence à l'entier indiqué par ce paramètre, par défaut à 1.
*i: The fist index of the substring to return, defaults to 1.
*<code>j</code> : la fin de la sous-chaîne de caractère finit à l'entier indiqué par ce paramètre.
*j: The last index of the string to return, defaults to the last character.
Le premier caractère de la chaîne se voit attribuer un indice de 1. Si <code>i</code> ou <code>j</code> est une valeur négative, cela est interprété comme la sélection d'un caractère en comptant à rebours à partir de la fin de la chaîne de caractère cible. Par conséquent, une valeur de -1 revient à sélectionner le dernier caractère de la chaîne.
The first character of the string is assigned an index of 1. If either i or j
is a negative value, it is interpreted the same as selecting a character by
counting from the end of the string. Hence, a value of -1 is the same as
selecting the last character of the string.


Si les indices demandés sont hors limites pour la chaîne donnée, une erreur est signalée. Si un paramètre d'indice est omis, la chaîne de caractère cible est reprise à l'identique, au commencement ou à la fin suivant l'omission et le signe du paramètre restant.
If the requested indices are out of range for the given string, an error is
reported.


=== match ===
=== match ===
Adapte [[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.match|mw.ustring.match]] et [[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.gmatch|mw.ustring.gmatch]] pour un appel depuis un modèle. pour un appel depuis un modèle.


Cette fonction renvoie une sous-chaîne de caractères issue de la chaîne de caractères source correspondant à un motif spécifique.
This function returns a substring from the source string that matches a
specified pattern.


;Utilisation :
Usage:
<pre>{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}</pre>
<pre>{{#invoke:String|match|source_string|pattern_string|start_indice|match_number|plain_flag|nomatch_output}}</pre>
OU
OR
<pre>{{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_index
<pre>{{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_indice
|match=match_number|plain=plain_flag|nomatch=nomatch_output}}</pre>
|match=match_number|plain=plain_flag|nomatch=nomatch_output}}</pre>


;Paramètres :
Parameters
* <code>s</code> : La chaîne de caractères sur laquelle effectuer la recherche
*s: The string to search
* <code>pattern</code> : Le motif recherché
*pattern: The pattern or string to find within the string
* <code>start</code> : L'indice de <code>s</code> auquel commencer la recherche. Le premier caractère de la chaîne de caractères a pour indice 1. Par défaut, 1.
*start: The index within the source string to start the search. The first character of the string has index 1. Defaults to 1.
*match: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1.
* <code>match</code> : Dans certains cas, il est possible d'effectuer plusieurs correspondances sur une seule chaîne. Le paramètre match spécifie la correspondance à conserver, défini tel que pour la première correspondance match = 1. Si un nombre négatif est donné comme valeur de match, la correspondance est renvoyée en partant de la fin. Ainsi, match = -1 est équivalent à demander la dernière correspondance. Par défaut, 1.
* <code>plain</code> : Booléen indiquant si le motif doit être interprété en tant que texte brut. Par défaut, false.
*plain: A flag indicating that the pattern should be understood as plain text. Defaults to false.
* <code>nomatch</code> : Valeur à retourner si aucune correspondance n'est trouvée.
*nomatch: If no match is found, output the "nomatch" value rather than an error.


Lorsqu'invoqué en utilisant des paramètres nommés, Mediawiki retire automatiquement tout espace vide en début et en fin d'une chaîne de caractères. Dans certaines situations, ce comportement est désirable. Dans d'autres, on veut l'éviter.
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from each string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.


Si les valeurs des paramètres <code>match</code> ou <code>start</code> sont plus élevées que la longueur de la chaîne de caractères <code>s</code>, cette fonction génère une erreur. Une erreur est aussi générée si aucune correspondance n'est trouvée et que le paramètre <code>nomatch</code> n'est pas défini.
If the match_number or start_index are out of range for the string being queried, then
En ajoutant le paramètre ignore_errors=true, les erreurs seront supprimées et remplacées par le renvoi d'un chaîne de caractères vide.
this function generates an error. An error is also generated if no match is found.
If one adds the parameter ignore_errors=true, then the error will be suppressed and
an empty string will be returned on any failure.


Pour davantage d'informations sur la construction de motifs Lua qui sont une forme d'[[expression régulière]], voir :
For information on constructing Lua patterns, a form of [regular expression], see:


* http://www.lua.org/manual/5.1/manual.html#5.4.1
* http://www.lua.org/manual/5.1/manual.html#5.4.1
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
* [[mw:Extension:Scribunto/Lua reference manual/fr#Motifs (pattern)]]
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns
* [[mw:Extension:Scribunto/Lua reference manual/fr#Motifs ustring (pattern)]]


=== pos ===
=== pos ===


This function returns a single character from the target string at position pos.
Cette fonction renvoie le caractère d'une chaîne de caractères situé à la position pos.


;Utilisation :
Usage:
<pre>{{#invoke:String|pos|target_string|index_value}}</pre>
<pre>{{#invoke:String|pos|target_string|indice_value}}</pre>
OU
OR
<pre>{{#invoke:String|pos|target=target_string|pos=index_value}}</pre>
<pre>{{#invoke:String|pos|target=target_string|pos=indice_value}}</pre>


;Paramètres :
Parameters
* <code>target</code> : La chaîne de caractère à explorer
*target: The string to search
* <code>pos</code> : L'indice du caractère à renvoyer au sein de la chaîne <code>target</code>.
*pos: The index for the character to return


Lorsqu'invoqué en utilisant des paramètres nommés, Mediawiki retire automatiquement tout espace vide en début et en fin d'une chaîne de caractères. Dans certaines situations, ce comportement est désirable. Dans d'autres, on veut l'éviter.
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.


Le premier caractère de la chaîne se voit attribuer un indice de 1.
The first character has an index value of 1.


Si un nombre négatif est donné comme valeur de <code>target</code>, la fonction compte en partant de la fin. Ainsi, target = -1 est équivalent à demander le dernier caractère.
If one requests a negative value, this function will select a character by counting backwards
from the end of the string. In other words pos = -1 is the same as asking for the last character.


Un indice de 0 ou supérieur à la longueur de la chaîne de caractères renvoie une erreur.
A requested value of zero, or a value greater than the length of the string returns an error.

=== str_find ===

This function duplicates the behavior of {{str_find}}, including all of its quirks.
This is provided in order to support existing templates, but is NOT RECOMMENDED for
new code and templates. New code is recommended to use the "find" function instead.

Returns the first index in "source" that is a match to "target". Indexing is 1-based,
and the function returns -1 if the "target" string is not present in "source".

Important Note: If the "target" string is empty / missing, this function returns a
value of "1", which is generally unexpected behavior, and must be accounted for
separatetly.


=== find ===
=== find ===
Adapte [[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.find|mw.ustring.find]] pour un appel depuis un modèle.


Cette fonction permet la recherche d'une chaîne de caractères ou d'un motif au sein d'une autre chaîne de caractères.
This function allows one to search for a target string or pattern within another
string.


;Utilisation :
Usage:
<pre>{{#invoke:String|find|source_str|target_string|start_index|plain_flag}}</pre>
<pre>{{#invoke:String|find|source_str|target_string|start_indice|plain_flag}}</pre>
OR
OR
<pre>{{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}}</pre>
<pre>{{#invoke:String|find|source=source_str|target=target_str|start=start_indice|plain=plain_flag}}</pre>


;Paramètres :
Parameters
* <code>source</code> : La chaîne de caractère à explorer
*source: The string to search
* <code>target</code> : Le motif ou la chaîne de caractères à trouver
*target: The string or pattern to find within source
* <code>start</code> : L'indice de <code>source</code> auquel commencer la recherche. Le premier caractère de la chaîne de caractères a pour indice 1.
*start: The index within the source string to start the search, defaults to 1
* <code>plain</code> : Indicateur booléen indiquant que le modèle doit être compris comme du texte brut et non comme une expression régulière de style Lua compatible Unicode; la valeur par défaut est ''true''
*plain: Boolean flag indicating that target should be understood as plain text and not as a Lua style regular expression, defaults to true


Lorsqu'invoqué en utilisant des paramètres nommés, Mediawiki retire automatiquement tout espace vide en début et en fin d'une chaîne de caractères. Dans certaines situations, ce comportement est désirable. Dans d'autres, on veut l'éviter.
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the parameter. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.


Cette fonction renvoie le premier indice de <code>source</code> en commençant de <code>start</code> auquel on peut trouver <code>target</code>. Si <code>target</code> n'est pas trouvée, cette fonction renvoie 0. Si l'un des deux paramètres <code>source</code> ou <code>target</code> est omis ou vide, cette fonction retourne également 0.
This function returns the first index >= "start" where "target" can be found
within "source". Indices are 1-based. If "target" is not found, then this
function returns 0. If either "source" or "target" are missing / empty, this
function also returns 0.

This function should be safe for UTF-8 strings.


Cette fonction fonctionne pour les chaînes de caractères encodées en UTF-8.


=== replace ===
=== replace ===
Adapte [[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.gsub|mw.ustring.gsub]] pour un appel depuis un modèle.


Cette fonction permet le remplacement d'une chaîne de caractères ou d'un motif cible au sein d'une chaîne de caractères par une autre chaîne de caractères.
This function allows one to replace a target string or pattern within another
string.


;Utilisation :
Usage:
<pre>{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}</pre>
<pre>{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}</pre>
OR
OR
Ligne 163 : Ligne 149 :
count=replacement_count|plain=plain_flag}}</pre>
count=replacement_count|plain=plain_flag}}</pre>


;Paramètres :
Parameters
* <code>source</code> : La chaîne de caractère à explorer
*source: The string to search
*pattern: The string or pattern to find within source
* <code>pattern</code> : Le motif ou la chaîne de caractères à trouver dans <code>source</code>
*replace: The replacement text
* <code>replace</code> : Le texte de remplacement
* <code>count</code> : Le nombre d'occurrences à remplacer. Par défaut, toutes.
*count: The number of occurences to replace, defaults to all.
* <code>plain</code> : Indicateur booléen indiquant que le modèle doit être compris comme du texte brut et non comme une expression régulière de style Lua compatible Unicode; la valeur par défaut est ''true''
*plain: Boolean flag indicating that pattern should be understood as plain text and not as a Lua style regular expression, defaults to true


=== simpletitle ===

This function returns the current page title without the homonymy part (the part in parenthesis).

Usage:
<pre>{{#invoke:String|simpletitle}}</pre>
OR
<pre>{{#invoke:String|simpletitle|string}}</pre>

Parameters
*string: if present this function will treat this string as the title of the page and remove
homonymy part if present in it. If not given the function uses the page title (without namespace)

=== titledisambig ===

Cette fonction renvoie la partie entre parenthèses du titre utilisée pour résoudre les cas d'homonymie.

Utilisation :
<pre>{{#invoke:String|titledisambig}}</pre>
OU
<pre>{{#invoke:String|titledisambig|expression}}</pre>

Paramètres :
* expression : si ce paramètre est présent, la fonction l'utilisera comme titre plutôt que de prendre le titre de la page.

=== trim ===

Cette fonction renvoie la chaîne passée en paramètre (non nommé) en supprimant au passage les éventuels espaces et sauts de ligne au début et/ou à la fin de celle-ci.

Utilisation :
<pre>{{#invoke:String|trim|texte}}</pre>

Paramètres :
* texte : le texte à nettoyer de ses espaces et sauts de ligne au début / à la fin




=== rep ===
=== rep ===
Adapte [[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.rep|mw.ustring.rep]] pour un appel depuis un modèle.


Cette fonction répète la même chaîne de multiple fois.
Cette fonction répète la même chaîne de multiple fois.


Utilisation :
;Utilisation :
<pre>{{#invoke:String|rep|texte|nombre}}</pre>
<pre>{{#invoke:String|rep|texte|nombre}}</pre>


Paramètres :
Paramètres :
* texte : le texte à répeter
* <code>texte</code> : le texte à répéter
* nombre : le nombre de répétition
* <code>nombre</code> : le nombre de répétition


=== count ===
=== count ===
Cette fonction utilise une fonctionnalité de [[mw:Extension:Scribunto/Lua reference manual/fr#mw.ustring.gsub|mw.ustring.gsub]].

Cette fonction compte le nombre de fois qu'un motif apparaît dans la chaîne de caractère.
Cette fonction compte le nombre de fois qu'un motif apparaît dans la chaîne de caractère.


Utilisation :
;Utilisation :
<pre>{{#invoke:String|count|texte|motif|plain_flag}}</pre>
<pre>{{#invoke:String|count|texte|motif|plain_flag}}</pre>


Paramètres :
;Paramètres :
* texte : la chaîne de caracère
* <code>texte</code> : la chaîne de caracère
* motif: le motif (ou ''pattern'') a rechercher
* <code>motif</code> : le motif (ou ''pattern'') a rechercher
* plain_flag: Indicateur booléen indiquant que le modèle doit être compris comme du texte brut et non comme un modèle ustring Scribunto (une expression régulière de style Lua compatible Unicode); la valeur par défaut est ''true''
* <code>plain_flag</code> : Indicateur booléen indiquant que le modèle doit être compris comme du texte brut et non comme une expression régulière de style Lua compatible Unicode; la valeur par défaut est ''true''


== Exemples ==
== Exemples ==


===len===
=== len ===
<pre>{{#invoke:String|len|ABCDEFGHIJ}}</pre> renvoie {{#invoke:String|len|ABCDEFGHIJ}}
<pre>
{{#invoke:String|len|ABCDEFGHIJ}} renvoie 10
<pre>{{#invoke:String|len|É}} </pre> renvoie {{#invoke:String|len|É}}, même si É occupe 2 octets
{{#invoke:String|len|É}} renvoie 1, même si É occupe 2 octets
<pre>{{#invoke:String|len| }} </pre> renvoie {{#invoke:String|len| }} , les espaces blancs sont pris en compte
{{#invoke:String|len| }} renvoie 1, les espaces blancs sont pris en compte
</pre>


===sub===
=== sub ===
<pre>
<pre>
{{#invoke:String|sub|ABCDEFGHIJ|0}} renvoie une erreur, ici l'index commence à 1 (contrairement à d'autres langages de programmation)
{{#invoke:String|sub|ABCDEFGHIJ|0}} renvoie une erreur, ici l'indice commence à 1 (contrairement à d'autres langages de programmation)
{{#invoke:String|sub|ABCDEFGHIJ|5}} renvoie EFGHIJ, on commence à partir du 5ème caractère et on prend le reste
{{#invoke:String|sub|ABCDEFGHIJ|5}} renvoie EFGHIJ, on commence à partir du 5ème caractère et on prend le reste
{{#invoke:String|sub|ABCDEFGHIJ|1|3}} renvoie ABC, on commence à partir du 1er jusqu'au 3ème
{{#invoke:String|sub|ABCDEFGHIJ|1|3}} renvoie ABC, on commence à partir du 1er jusqu'au 3ème
{{#invoke:String|sub|ABCDEFGHIJ|1|1}} renvoie A
{{#invoke:String|sub|ABCDEFGHIJ|1|1}} renvoie A
{{#invoke:String|sub|ABCDEFGHIJ|-1}} renvoie J, l'index est inversé on commence à la fin
{{#invoke:String|sub|ABCDEFGHIJ|-1}} renvoie J, l'indice est inversé on commence à la fin
{{#invoke:String|sub|ABCDEFGHIJ|-5|-2}} renvoie FGHI
{{#invoke:String|sub|ABCDEFGHIJ|-5|-2}} renvoie FGHI
{{#invoke:String|sub|ABCDEFGHIJ|-5|2}} renvoie une erreur, l'index de fin doit être après l'index de début (2 est placé avant -5)
{{#invoke:String|sub|ABCDEFGHIJ|-5|2}} renvoie une erreur, l'indice de fin doit être après l'indice de début (2 est placé avant -5)
{{#invoke:String|sub|ABCDEFGHIJ|-5|7}} renvoie FGHI, l'index de fin est bien après l'index de début
{{#invoke:String|sub|ABCDEFGHIJ|-5|7}} renvoie FGHI, l'indice de fin est bien après l'indice de début
</pre>
</pre>


===trim===
=== count ===
* <code><nowiki>###{{#invoke:String|trim|abc}}###</nowiki></code> : ###{{#invoke:String|trim|abc}}###
* <code><nowiki>###{{#invoke:String|trim| abc}}###</nowiki></code> : ###{{#invoke:String|trim| abc}}###
* <code><nowiki>###{{#invoke:String|trim|abc }}###</nowiki></code> : ###{{#invoke:String|trim|abc }}###
* <code><nowiki>###{{#invoke:String|trim| abc }}###</nowiki></code> : ###{{#invoke:String|trim| abc }}###


Exemples :
===count===
* <code><nowiki>{{#invoke:String|count|aabbcc|a}}</nowiki></code> : {{#invoke:String|count|aabbcc|a}} --nombre de a

* <code><nowiki>{{#invoke:String|count|aabbcc|z}}</nowiki></code> : {{#invoke:String|count|aabbcc|z}} --nombre de z
Exemples:
* <code><nowiki>###{#invoke:String|count|aabbcc|a}}###</nowiki></code> : ###{{#invoke:String|count|aabbcc|a}}### --nombre de a
* <code><nowiki>{{#invoke:String|count|aabbcc|[ac]|plain=false}}</nowiki></code> : {{#invoke:String|count|aabbcc|[ac]|plain=false}} --nombre de a ou de c
* <code><nowiki>###{#invoke:String|count|aabbcc|[ac]|plain=false}}###</nowiki></code> : ###{{#invoke:String|count|aabbcc|[ac]|plain=false}}### --nombre de a ou de c
* <code><nowiki>{{#invoke:String|count|11-aa-2587|[0-9]|plain=false}}</nowiki></code> : {{#invoke:String|count|11-aa-2587|[0-9]|plain=false}} --nombre de chiffres
* <code><nowiki>###{#invoke:String|count|11-aa-2587|[0-9]|plain=false}}###</nowiki></code> : ###{{#invoke:String|count|11-aa-2587|[0-9]|plain=false}}### --nombre de chiffres
* <code><nowiki>{{#invoke:String|count|Il était une fois| |plain=true}}</nowiki></code> : {{#invoke:String|count|Il était une fois| |plain=true}} --nombre de blancs
* <code><nowiki>{{#invoke:String|count|Il était une fois|[ ]|plain=false}}</nowiki></code> : {{#invoke:String|count|Il était une fois|[ ]|plain=false}} --nombre de blancs


== Voir aussi ==
== Voir aussi ==
Ligne 268 : Ligne 216 :
{{Traduction/Référence|en|Module:String/doc}}
{{Traduction/Référence|en|Module:String/doc}}


{{Projet Scribunto}}
{{Projet Scribunto}}<includeonly>
[[Catégorie:Module appelé directement par un modèle]]

<includeonly>
[[Catégorie:Module en langage Lua]]
</includeonly>
</includeonly>

Dernière version du 26 août 2024 à 23:38

Le module String (un mot anglais signifiant chaîne de caractères) permet de manipuler des chaînes de caractères. Les fonctions fournies par ce module sont prévues pour un appel depuis des modèles. Appeler ce module depuis un autre module a peu d'intérêt car les fonctions fournies reprennent les fonctions natives de lua et les fonctions fournies par la bibliothèque mw.ustring.

Utilisation

[modifier le code]

Fonctions exportables :

  • len – renvoie le nombre de caractères dans une chaîne, prend en compte les caractères multi-octets (len ou length signifie taille, longueur)
  • sub – renvoie une partie de la chaîne de caractères (sub ou sub-string signifie sous-chaîne)
  • match – renvoie la première correspondance d'un motif dans une chaîne de caractères
  • pos – renvoie le caractère à une position donnée d'une chaîne de caractères
  • find – renvoie les indices de fin de chaque occurrence d'un motif dans une chaîne de caractères
  • replace – renvoie la chaîne de caractères initiale dans laquelle un motif est remplacé par un autre
  • rep – renvoie la chaîne de caractères passée en argument répété autant de fois que souhaité
  • count – renvoie le nombre d'occurrences d'un motif dans une chaîne de caractères

Autres fonctions : « Helper functions » (fonctions qui auraient pu être locales, mais pour une raison inconnue sont publiques)

  • _getParameters – permet l'extraction dans un tableau des arguments du frame
  • _error – permet la mise en forme des messages d'erreur
  • _getBoolean – permet l'interprétation de chaînes de caractères comme booléens
  • _escapePattern – permet d'« échapper » tous les caractères spéciaux afin qu'ils soient pris en compte comme du texte et non comme des paramètres d'un motif.

Modules externes et autres éléments dont ce module a besoin pour fonctionner :

  • Bibliothèque mw.ustring :
    • mw.ustring.len – Renvoie la longueur d'une chaîne de caractères ;
    • mw.ustring.sub – Renvoie une tranche d'une chaîne de caractères ;
    • mw.ustring.gsub – Renvoie une chaîne de caractères dans laquelle toutes les occurrences d'un motif sont remplacées par une chaîne de remplacement ;
    • mw.ustring.match – Renvoie la première correspondance d'un motif dans une chaine de caractères ;
    • mw.ustring.gmatch – Renvoie un itérateur contenant toutes les correspondances d'un motif dans une chaine de caractères ;
    • mw.ustring.find – Renvoie les indices de fin des occurrences d'un motif dans une chaîne de caractères ;
    • mw.ustring.rep – Renvoie une chaîne de caractères répétée plusieurs fois ;
  • mw.getCurrentFrame – Renvoie l'objet frame courant, généralement l'objet frame du dernier appel à #invoke.

Adapte mw.ustring.len pour un appel depuis un modèle.

Cette fonction renvoie la longueur de la chaîne de caractère cible.

Utilisation
{{#invoke:String|len|chaîne_de_caractère_cible}}

OU

{{#invoke:String|len|s=chaîne_de_caractère_cible}}
Paramètres
  • s : la chaîne de caractère dont la longueur doit être signalée

S'il est appelé à l'aide de paramètres nommés, MediaWiki supprimera automatiquement tout espace blanc de début ou de fin de la chaîne de caractère cible.

Adapte mw.ustring.sub pour un appel depuis un modèle.

Cette fonction renvoie une sous-chaîne de caractère spécifiée par des indices numériques d'une chaîne cible.

Utilisation
{{#invoke:String|sub|chaîne_de_caractère_cible|indice_de_départ|indice_de_fin}}

OU

{{#invoke:String|sub|s=chaîne_de_caractère_cible|i=indice_de_départ|j=indice_de_fin}}
Paramètres
  • s : la chaîne de caractère de départ
  • i : le début de la sous-chaîne de caractère commence à l'entier indiqué par ce paramètre, par défaut à 1.
  • j : la fin de la sous-chaîne de caractère finit à l'entier indiqué par ce paramètre.

Le premier caractère de la chaîne se voit attribuer un indice de 1. Si i ou j est une valeur négative, cela est interprété comme la sélection d'un caractère en comptant à rebours à partir de la fin de la chaîne de caractère cible. Par conséquent, une valeur de -1 revient à sélectionner le dernier caractère de la chaîne.

Si les indices demandés sont hors limites pour la chaîne donnée, une erreur est signalée. Si un paramètre d'indice est omis, la chaîne de caractère cible est reprise à l'identique, au commencement ou à la fin suivant l'omission et le signe du paramètre restant.

Adapte mw.ustring.match et mw.ustring.gmatch pour un appel depuis un modèle. pour un appel depuis un modèle.

Cette fonction renvoie une sous-chaîne de caractères issue de la chaîne de caractères source correspondant à un motif spécifique.

Utilisation
{{#invoke:String|match|source_string|pattern_string|start_indice|match_number|plain_flag|nomatch_output}}

OU

{{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_indice
    |match=match_number|plain=plain_flag|nomatch=nomatch_output}}
Paramètres
  • s : La chaîne de caractères sur laquelle effectuer la recherche
  • pattern : Le motif recherché
  • start : L'indice de s auquel commencer la recherche. Le premier caractère de la chaîne de caractères a pour indice 1. Par défaut, 1.
  • match : Dans certains cas, il est possible d'effectuer plusieurs correspondances sur une seule chaîne. Le paramètre match spécifie la correspondance à conserver, défini tel que pour la première correspondance match = 1. Si un nombre négatif est donné comme valeur de match, la correspondance est renvoyée en partant de la fin. Ainsi, match = -1 est équivalent à demander la dernière correspondance. Par défaut, 1.
  • plain : Booléen indiquant si le motif doit être interprété en tant que texte brut. Par défaut, false.
  • nomatch : Valeur à retourner si aucune correspondance n'est trouvée.

Lorsqu'invoqué en utilisant des paramètres nommés, Mediawiki retire automatiquement tout espace vide en début et en fin d'une chaîne de caractères. Dans certaines situations, ce comportement est désirable. Dans d'autres, on veut l'éviter.

Si les valeurs des paramètres match ou start sont plus élevées que la longueur de la chaîne de caractères s, cette fonction génère une erreur. Une erreur est aussi générée si aucune correspondance n'est trouvée et que le paramètre nomatch n'est pas défini. En ajoutant le paramètre ignore_errors=true, les erreurs seront supprimées et remplacées par le renvoi d'un chaîne de caractères vide.

Pour davantage d'informations sur la construction de motifs Lua qui sont une forme d'expression régulière, voir :

Cette fonction renvoie le caractère d'une chaîne de caractères situé à la position pos.

Utilisation
{{#invoke:String|pos|target_string|indice_value}}

OU

{{#invoke:String|pos|target=target_string|pos=indice_value}}
Paramètres
  • target : La chaîne de caractère à explorer
  • pos : L'indice du caractère à renvoyer au sein de la chaîne target.

Lorsqu'invoqué en utilisant des paramètres nommés, Mediawiki retire automatiquement tout espace vide en début et en fin d'une chaîne de caractères. Dans certaines situations, ce comportement est désirable. Dans d'autres, on veut l'éviter.

Le premier caractère de la chaîne se voit attribuer un indice de 1.

Si un nombre négatif est donné comme valeur de target, la fonction compte en partant de la fin. Ainsi, target = -1 est équivalent à demander le dernier caractère.

Un indice de 0 ou supérieur à la longueur de la chaîne de caractères renvoie une erreur.

Adapte mw.ustring.find pour un appel depuis un modèle.

Cette fonction permet la recherche d'une chaîne de caractères ou d'un motif au sein d'une autre chaîne de caractères.

Utilisation
{{#invoke:String|find|source_str|target_string|start_indice|plain_flag}}

OR

{{#invoke:String|find|source=source_str|target=target_str|start=start_indice|plain=plain_flag}}
Paramètres
  • source : La chaîne de caractère à explorer
  • target : Le motif ou la chaîne de caractères à trouver
  • start : L'indice de source auquel commencer la recherche. Le premier caractère de la chaîne de caractères a pour indice 1.
  • plain : Indicateur booléen indiquant que le modèle doit être compris comme du texte brut et non comme une expression régulière de style Lua compatible Unicode; la valeur par défaut est true

Lorsqu'invoqué en utilisant des paramètres nommés, Mediawiki retire automatiquement tout espace vide en début et en fin d'une chaîne de caractères. Dans certaines situations, ce comportement est désirable. Dans d'autres, on veut l'éviter.

Cette fonction renvoie le premier indice de source en commençant de start auquel on peut trouver target. Si target n'est pas trouvée, cette fonction renvoie 0. Si l'un des deux paramètres source ou target est omis ou vide, cette fonction retourne également 0.

Cette fonction fonctionne pour les chaînes de caractères encodées en UTF-8.

Adapte mw.ustring.gsub pour un appel depuis un modèle.

Cette fonction permet le remplacement d'une chaîne de caractères ou d'un motif cible au sein d'une chaîne de caractères par une autre chaîne de caractères.

Utilisation
{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}

OR

{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|
   count=replacement_count|plain=plain_flag}}
Paramètres
  • source : La chaîne de caractère à explorer
  • pattern : Le motif ou la chaîne de caractères à trouver dans source
  • replace : Le texte de remplacement
  • count : Le nombre d'occurrences à remplacer. Par défaut, toutes.
  • plain : Indicateur booléen indiquant que le modèle doit être compris comme du texte brut et non comme une expression régulière de style Lua compatible Unicode; la valeur par défaut est true


Adapte mw.ustring.rep pour un appel depuis un modèle.

Cette fonction répète la même chaîne de multiple fois.

Utilisation
{{#invoke:String|rep|texte|nombre}}

Paramètres :

  • texte : le texte à répéter
  • nombre : le nombre de répétition

Cette fonction utilise une fonctionnalité de mw.ustring.gsub.

Cette fonction compte le nombre de fois qu'un motif apparaît dans la chaîne de caractère.

Utilisation
{{#invoke:String|count|texte|motif|plain_flag}}
Paramètres
  • texte : la chaîne de caracère
  • motif : le motif (ou pattern) a rechercher
  • plain_flag : Indicateur booléen indiquant que le modèle doit être compris comme du texte brut et non comme une expression régulière de style Lua compatible Unicode; la valeur par défaut est true
{{#invoke:String|len|ABCDEFGHIJ}}

renvoie 10

{{#invoke:String|len|É}} 

renvoie 1, même si É occupe 2 octets

{{#invoke:String|len| }}  

renvoie 1 , les espaces blancs sont pris en compte

{{#invoke:String|sub|ABCDEFGHIJ|0}}        renvoie une erreur, ici l'indice commence à 1 (contrairement à d'autres langages de programmation)
{{#invoke:String|sub|ABCDEFGHIJ|5}}        renvoie EFGHIJ, on commence à partir du 5ème caractère et on prend le reste
{{#invoke:String|sub|ABCDEFGHIJ|1|3}}      renvoie ABC, on commence à partir du 1er jusqu'au 3ème
{{#invoke:String|sub|ABCDEFGHIJ|1|1}}      renvoie A
{{#invoke:String|sub|ABCDEFGHIJ|-1}}       renvoie J, l'indice est inversé on commence à la fin
{{#invoke:String|sub|ABCDEFGHIJ|-5|-2}}    renvoie FGHI
{{#invoke:String|sub|ABCDEFGHIJ|-5|2}}     renvoie une erreur, l'indice de fin doit être après l'indice de début (2 est placé avant -5) 
{{#invoke:String|sub|ABCDEFGHIJ|-5|7}}     renvoie FGHI, l'indice de fin est bien après l'indice de début

Exemples :

  • {{#invoke:String|count|aabbcc|a}} : 2 --nombre de a
  • {{#invoke:String|count|aabbcc|z}} : 0 --nombre de z
  • {{#invoke:String|count|aabbcc|[ac]|plain=false}} : 4 --nombre de a ou de c
  • {{#invoke:String|count|11-aa-2587|[0-9]|plain=false}} : 6 --nombre de chiffres
  • {{#invoke:String|count|Il était une fois| |plain=true}} : 3 --nombre de blancs
  • {{#invoke:String|count|Il était une fois|[ ]|plain=false}} : 3 --nombre de blancs

Voir aussi

[modifier le code]