Această pagină este protejată de mișcare
Această pagină este protejată

Forma: String

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Lua modul pentru șir de manipulare.

Cele mai multe dintre funcțiile acestui modul poate fi invocat cu numit, fara nume, sau un amestec din ambele. MediaWiki software - ului, atunci când se utilizează parametrii numiți, va elimina orice spații sau ultimul din parametrul. În funcție de utilizarea pe care doriți să vă funcției, poate fi avantajos să se păstreze sau să elimine aceste spații.

Apel de funcții

Acest modul este menit să fie numit dintr - un șablon , nu direct de la o intrare. Modulul poate fi, de asemenea, numit de la un alt modul Lua, dar în acest caz este mai bine să utilizați funcțiile de manipulare șir Lua direct:

Pentru a invoca modulul de la un șablon de utilizare sintaxa: {{{{{|safesubst:}}}#invoke:String| nome della funzione | parametro 1 | parametro 2 |...| parametro n |}} . De exemplu , de utilizare a se vedea șablonul {{ Str len }}

optiuni

Unele funcții pot da un mesaj de eroare sau de a seta o categorie de eroare, generarea acestui mesaj și / sau crearea acestei categorii poate fi controlată prin următoarele opțiuni.

ignore_errors: daca este setat la 1 sau orice condiție de eroare „true“ va da un șir gol , mai degrabă decât un mesaj de eroare.
error_category: în cazul în care apare o eroare este numele unei categorii care urmează să fie incluse cu mesajul de eroare. Categoria implicită este Categorie: Erori raportate de către modulul String .
no_category: Dacă este setat la 1 sau „adevărat“, nu exista categorii vor fi adăugate în caz de eroare.

Funcții

Len

Această funcție returnează lungimea unui șir de caractere.

Utilizare
  • {{#invoke:String|len|stringa}}

SAU

  • {{#invoke:String|len|s= stringa }}
Parametrii
  • s: Șir pentru a reveni lungimea

În cazul în care a invocat folosind parametrii numiți, Mediawiki va elimina automat orice spații sau ultimul din șirul.

Sub

Această funcție returnează substringul unui șir de caractere țintă, așa cum este indicat de indicii

Utilizare
  • {{#invoke:String|sub|stringa_bersaglio|indice_iniziale|indice_finale}}

SAU

  • {{#invoke:String|sub|s= stringa_bersaglio |i= indice_iniziale |j= indice_finale }}
Parametrii
  • s: Șir pentru a extrage un subsir
  • i: Poziția de pornire a primului caracter al subșirului să fie returnate, dacă nu este specificat este 1.
  • j: Poziția finală a ultimului caracter al subșirului care urmează să fie returnate, în cazul în care nu este specificat, este lungimea target_string (ultimul caracter).

Caracterele șirului sunt numerotate începând de la 1. Dacă i sau j au o valoare negativă , atunci ei contează numărarea poziția de la capătul șirului, -1 este ultimul caracter al șirului, -2 penultima, etc .. .

În cazul în care pozițiile sunt în afara capetele șirului, un mesaj de eroare este returnat.

Meci

Această funcție returnează un subșir din șirul țintă specificat de potrivire un model .

Utilizare
  • {{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}

SAU

  • {{#invoke:String|match|s= source_string |pattern= pattern_string |start= start_index |match= match_number |plain= plain_flag |nomatch= nomatch_output }}
Parametrii
  • s: șirul pentru a căuta
  • model: modelul pentru a căuta în șirul s
  • începe: poziția de pornire pentru a începe căutarea, în cazul în care nu este specificat este 1.
  • se potrivesc: în cazul în care există mai multe meciuri, pe care să se întoarcă: 1 pentru primul meci, 2 pentru a doua, etc ... Un mijloc de valoare negativă pentru a conta înapoi de la ultimul meci, astfel încât meci = -1 înseamnă să solicite ultimul meci. Dacă nu este specificat că este 1
  • simplu: dacă specifică adevărat că modelul trebuie tratat ca un șir de caractere normale, mai degrabă decât un model Lua. Dacă nu este specificat este fals.
  • nomatch: Valoarea pentru a reveni în cazul în care nu există nici un meci, în loc de o eroare.

Dacă numit folosind parametrii numiți Mediawiki va elimina automat toate spațiile de conducere și rămase în urmă. În anumite circumstanțe, acest lucru poate fi comportamentul dorit, în altele poate doriți să le păstrați.

În cazul în care un meci sau de pornire este în afara sfârșitul șirului s, atunci funcția returnează o eroare. O eroare este aruncată chiar dacă se găsesc nici un meci. Pentru erori suprima puteți adăuga ignore_errors parametru = true, în acest caz , în caz de eroare un șir gol va fi returnat.

poz

Această funcție returnează caracterul de șirul în poziția pos.

Utilizare
  • {{#invoke:String|pos|stringa_bersaglio|indice}}

SAU

  • {{#invoke:String|pos|target= stringa_bersaglio |pos= indice }}
Parametrii
  • țintă: șirul pentru a căuta
  • pos: poziția caracterul retur

Dacă numit folosind parametrii numiți Mediawiki va elimina automat toate spațiile de conducere și rămase în urmă. În anumite circumstanțe, acest lucru poate fi comportamentul dorit, în altele poate doriți să le păstrați.

Caracterele șirului sunt numerotate începând de la 1. Dacă pos este o valoare negativă , atunci contează poziția de pornire de la capătul șirului, -1 este ultimul caracter al șirului, -2 penultima, etc ...

În cazul în care poziția solicitată este 0 sau în afara extremităților șir, este returnată o eroare.

str_find

Această funcție dublează comportamentul {{ str_find }}, inclusiv cazuri speciale. Această funcție este prevăzută pentru compatibilitate cu template-uri vechi, dar este recomandat să nu-l folosească în șabloane noi. La elaborarea unui cod nou, se recomandă să utilizați găsi funcția.

Parametrii
  • sursa: șirul pentru a căuta
  • țintă: șirul pentru a căuta

Returnează poziția în șirul sursă al primului caracter în cazul în care a fost găsit șirul țintă. Caracterele din șirul sunt numerotate începând de la 1. Funcția returnează -1 dacă șirul țintă nu este conținută în sursă.

Notă importantă: Pentru compatibilitatea cu șablonul vechi, dacă șirul țintă este gol sau lipsește, funcția returnează valoarea „1“

găsi

Această funcție vă permite să căutați un șir de caractere țintă sau un model Lua în cadrul unui alt șir de caractere.

Utilizare
  • {{#invoke:String|find|stringa_sorgente|stringa_bersaglio|indice_iniziale|plain_flag}}

SAU

  • {{#invoke:String|find|source= stringa_sorgente |target= stringa_bersaglio |start= indice_iniziale |plain= plain_flag }}
Parametrii
  • sursa: șirul pentru a căuta
  • țintă: șirul model sau Lua pentru a căuta
  • începe: locația din care pentru a începe căutarea, în cazul în care nu este specificat este de 1
  • neteda: Dacă este adevărat indică faptul că șirul țintă trebuie să fie considerate ca text simplu și nu ca un model Lua, în cazul în care nu este specificat este adevărat

Dacă numit folosind parametrii numiți Mediawiki va elimina automat toate spațiile de conducere și rămase în urmă. În anumite circumstanțe, acest lucru poate fi comportamentul dorit, în altele poate doriți să le păstrați.

Această funcție returnează prima poziție mai mare decât sau egală cu care începe de la țintă este în sursă. Caracterele din șirul sunt numerotate începând de la 1. În cazul în care obiectivul nu este găsit dă 0. Dacă sursa sau țintă lipsesc sau sunt goliți - l dă 0.

Această funcție trebuie să fie sigure pentru UTF-8 siruri de caractere.

a inlocui

Această funcție vă permite să înlocuiască un șir de caractere țintă sau un model cu un alt șir.

Utilizare
  • {{#invoke:String|replace|stringa_sorgente|stringa_pattern|nuova_stringa|numero_di_sostituzioni|plain_flag}}

SAU

  • {{#invoke:String|replace|source= stringa_sorgente |pattern= stringa_pattern |replace= nuova_stringa | count= numero_di_sostituzioni |plain= plain_flag }}
Parametrii
  • sursa: șirul pentru a căuta
  • model: șirul model sau Lua pentru a găsi în sursă
  • înlocuiți: textul de înlocuire
  • conta: numărul de ori pentru a înlocui șirul, în cazul în care nu sunt specificate toate.
  • simplu: dacă este adevărat indică faptul că modelul ar trebui să fie considerate ca text simplu și nu ca un model Lua, valoarea implicită este adevărat

arraytostring

Formatați una sau mai multe liste de valori într-un singur șir de caractere

Utilizare
  • {{#invoke:String|arraytostring|par1|formato|separatore|congiunzione}}
Parametrii
  • PAR1 ... n par: numele de bază a variabilelor care urmează să fie uniți, trebuie să conțină caracterul „#“ , care specifică poziția în care pentru a insera indexul. De exemplu , în cazul în care PAR1 este "Param #", funcția va fuziona valorile listei de parametri Param 1, 2 Param, Param 3, etc ...
    Parametrul „param“ (fără număr) vor fi considerate echivalente cu „param1“ (acest comportament poate fi schimbat cu parametrul „baseIndex“)
  • msg: formatare care urmează să fie aplicate la elaborarea parametrilor. Simbolul $ n acționează ca un substituent pentru parametrul „n par“. Puteți introduce codul mediawiki, dar orice „{“ și „}“ caractere trebuie să fie precedată de o „\“, în timp ce „|“ trebuie introduse cu constanta {{!}}. Orice finală „\}“ trebuie să fie detașat întotdeauna, cu spațiu sau altul, de la „}}“ la sfârșitul comenzii.
  • separator: un string (opțional) să fie inserate între fiecare valoare
  • coroborat: un șir de caractere (opțional) pentru a se introduce în locul separator între ultima și penultima valoare. În cazul în care nu a declarat, valoarea „separator“ este folosit
  • nmin: indicele inițial pentru a începe scanarea parametrilor (implicit egal cu 1)
  • Vmax: indicele maxim care poate fi atinsă cu parametrii (dacă nu este specificat este nelimitat)
  • nobbligatori = indicele minim care trebuie evaluat chiar și în prezența unor găuri în secvența ( „nmax“ va fi în continuare evaluate ca indicele maxim)
  • baseIndex: valoarea indicelui parametric care coincide cu parametrul fără index ( în mod normal este 1, deci parametrii „PAR1“ și „par“ sunt echivalente, în cazul în care, de exemplu , acesta este setat la 0 , atunci este „par0“ , care va fi echivalent cu „par“)
  • listă: parametru pentru care una dintre următoarele valori pot fi atribuite.
    - formate buline lista de valori ca și o listă cu marcatori (valorile „separator“ și „conjuncție“ sunt ignorate)
    sortate - formatează lista de valori ca și o listă numerotată (valorile „separator“ și „conjuncție“ sunt ignorate)
    infobox - formatul listei de valori ca și o listă cu marcatori (valorile „separator“ și „conjuncție“ sunt ignorate), cu excepția cazului când există doar un singur element
exemple de apel
{{#invoke:string|arraytostring|par1=var#|separatore= |congiunzione= e }}
Formatarea unei liste de parametri „var1“, „var2“ ... „var n“ separându - le printr - o virgulă, cu excepția ultimele două alăturat prin conjuncția „e“
{{#invoke:string|arraytostring|par1=disegnatore #|par2=disegnatore # nota|msg = $1 <small>$2</small>|lista=infobox}}
Format perechi de parametri " de designer 1", "designer de 2" ... " de designer n" și "designer de 1 nota", "designer de 2 nota" ... " de designer n Notă". Fiecare pereche va fi formatat ca „desenator Designer“ , iar acestea vor fi comasate într - o listă cu marcatori. Utilizat în {{ Caracter }} pentru a formata listele de designeri / autori / editori, etc ...
{{#invoke:String|arraytostring|par1=#|msg=''$1''|separatore=<nowiki>|</nowiki>|Nmin=2}}
Se combină parametrii ordinal „2“, „3“ ... „n“ într - o listă separată prin „|“. Fiecare valoare este redată în caractere cursive. Utilizat în {{ tl }} pentru a formata lista de parametri opțional.

colaționare

Această funcție returnează șirul privat oricăror semne diacritice pe litere ale alfabetului latin. De exemplu, schimbarea „ciao“ la „Bună ziua“, de preferat, de exemplu, pentru felul alfabetice.

Utilizare
  • {{#invoke:String|collate|stringa}}
Parametrii
  • string: Șirul de a elimina semnele de

decodifica

Această funcție acceptă un șir codificat cu sistemul de procentul utilizat în URL-uri și returnează șirul decodat. Prin urmare, face exact opusul a urlencode funcției sistemului. De exemplu, schimbarea „Ca% 20VA% 3F“ la „Ce mai faci?“.

Utilizare
  • {{#invoke:String|decode|stringa}}
Parametrii
  • string: Șirul de decodat

title_alpha

Această funcție acceptă un șir de caractere care corespunde unui titlu al unei lucrări și întoarce șirul adaptat la ordinea alfabetică. De exemplu, transformarea "La Pieta" în "Pieta, La". Ea nu întotdeauna locul de muncă, să nu fie în stare să înțeleagă sensul cuvintelor, dar se rezolvă în mod automat cele mai multe cazuri.

Utilizare
  • {{#invoke:String|titolo_alfa|titolo}}
Parametrii
  • Titlu: Titlul lucrării. În mod implicit, este luat titlul paginii vă aflați.

unitate de testare

Teste unitare pentru acest modul sunt disponibile la Modulul: String / test , pentru executarea vizita lor Discussions_module: String / test .

Documentație model Lua

Mai multe funcții utilizează modele Lua, acestea sunt o formă de expresie regulată , pentru mai multe informații despre a se vedea lor sintaxa:


 - [[

Acest modul este pentru asigurarea accesului la funcții șir de bază.

Cele mai multe dintre funcțiile acestui modul poate fi apelată cu
Parametrii cu nume, fără nume, sau cu un amestec din ambele. Atunci când acestea sunt utilizate
parametrii numiți software - ul Mediawiki va elimina orice spații de conducere sau rămase în urmă
din parametrul. În funcție de utilizarea pe care doriți să faceți din funcția poate fi
este avantajos să se păstreze sauelimine aceste spații.

optiuni
ignore_errors: dacă este setat la „true“ sau 1, fiecare condiție de eroare va returna un șir gol
mai degrabă decât un mesaj de eroare.

error_category: în cazul unei erori, este numele unei categorii pentru a include
împreună cu mesajul de eroare. Categoria implicită
[Categorie: Erori Modulul String]. (TODO: verifică)

no_category: Dacă este setat la „true“ sau 1, nicio categorii vor fi adăugate în caz de eroare.

Teste unitare pentru acest modul sunt disponibile la modulul: String / test.

Mai multe funcții folosesc modele Lua, acestea sunt o formă de expresie regulată, pentru
mai multe informații , consultați:
* http://www.lua.org/manual/5.1/manual.html#5.4.1
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns

]]

str locală = {}

- [[
Len

Această funcție returnează lungimea unui șir de caractere.

Utilizare:
{{#invoke: String | len | string |}}
SAU
{{#invoke: String | len | s = string}}

Parametrii
s: Șir pentru a reveni lungimea

În cazul în care a invocat folosind parametrii numiți, Mediawiki va elimina automat orice spațiu de conducere
sau finală din șirul.
]]
Funcția str. len (cadru)
new_args locale = str. _getParameters (frame. args, { 's'});
s locale = new_args [ 's'] sau '';
întoarce-te mw . ustring . len (s)
Sfârșit

- [[
Sub

Această funcție returnează substringul unui șir de caractere țintă, așa cum este indicat de indicii

Utilizare:
{{#invoke: String | Sub | target_string | initial_index | final_index}}
SAU
{{#invoke: String | sub | s = target_string | i = initial_index | j = final_index}}

Parametrii
s: Șir pentru a extrage un subsir
I: Poziția de pornire a primului caracter al subșirului care urmează să fie returnate, în cazul în care nu
specificată este 1.
j: Poziția finală a ultimului caracter al subșirului care urmează să fie returnate, în cazul în care nu
specificată este lungimea target_string (ultimul caracter).

Caracterele din șirul sunt numerotate începând de la 1. Dacă ioj au o valoare negativă , atunci
conta poziția de numărare de la sfârșitul șirului, -1 este ultimul caracter al șirului,
-2 penultima, etc ...

În cazul în care pozițiile sunt în afara capetele șirului, un mesaj de
eroare.
]]
Funcția str. sub (cadru)
new_args locale = str. _getParameters (frame. args, { 's', 'i', 'j'});
s locale = new_args [ 's'] sau '';
i locale = tonumber (new_args [ 'i']) sau 1;
j locală = tonumber (new_args [ 'j']) sau - 1;

Len locale = mw. ustring . len (s);

- negative pentru gama de verificare Convertirea
dacă i <0 atunci
i = len + i + 1;
Sfârșit
dacă j <0 atunci
j = len + j + 1;
Sfârșit

dacă i> len sau j> len sau i <1 sau j <1 atunci
întoarce str. _error ( „Indici în afara capetelor șirului“);
Sfârșit
dacă j <i apoi
întoarce str. _error ( „indexuri în ordine greșită“);
Sfârșit

întoarce-te mw . ustring . sub (s, i, j)
Sfârșit

- [[
Această funcție implementează toate caracteristicile de {{str sub}} și se păstrează din motive
compatibilitatea cu template - uri mai vechi.
]]
Funcția str. sublength (cadru)
locale i = tonumber (frame. args. i) sau 0
len locală = tonumber (frame. args. len)
întoarce-te mw . ustring . sub (cadru. args. s, i + 1, len și (i + len))
Sfârșit

- [[
Meci

Această funcție returnează un subșir care corespunde unui model din șirul țintă
specificate.

Utilizare:
{{#invoke: String | meci | source_string | PATTERN_STRING | START_INDEX | match_number | plain_flag | nomatch_output}}
SAU
{{#invoke: String | meci | s = source_string | model = PATTERN_STRING | start = START_INDEX
| Meci = match_number | simplu = plain_flag | nomatch = nomatch_output}}

Parametrii
s: Șirul pentru a căuta
model: Modelul pentru a căuta în șirul
începe: Pozitia de pornire pentru a începe căutarea, în cazul în care nu este specificat este 1.
se potrivesc: În cazul în care există mai multe meciuri pe care să se întoarcă, 1 pentru primul
se potrivesc, 2 pentru a doua, etc. O valoare negativă indică faptul de a conta
înapoi de la ultimul meci, astfel încât se potrivesc = -1 mijloace
cere pentru ultima corespondență. Dacă nu este specificat că este 1
simplu: Dacă este adevărat specifică faptul că modelul ar trebui să fie tratate ca
string normale, mai degrabă decât un model Lua. Dacă nu este specificat este fals.
nomatch: Valoarea pentru a reveni în cazul în care nu există nici un meci, în loc de a se întoarce
o eroare.

Dacă numit folosind parametrii numiți Mediawiki va elimina automat toate
început și de final spații. În anumite circumstanțe , acest lucru poate fi comportamentul
dorit, în altele poate doriți să le păstrați.

Dacă match_number sau START_INDEX sunt în afara sfârșitul șirului S,
funcția returnează o eroare. O eroare este aruncată chiar dacă nu sunt găsite
chibrituri. Pentru erori suprima puteți adăuga ignore_errors parametru = true,
în acest caz , în caz de eroare un șir gol va fi returnat.

]]
Funcția str. meci (cadru)
întoarce str. _match (cadru. args)
Sfârșit

- [[
Punct de intrare pentru apel direct dintr - un modul
]]
Funcția str. _match (args)
new_args locale = str. _getParameters (args, { 's', 'model', 'start', 'meci' 'simplu', 'nomatch'});
s locale = new_args [ 's'] sau '';
start = tonumber local (new_args [ 'start']) sau 1;
plain_flag locale = str. _getBoolean (new_args [ 'simplu'] sau fals);
model local , = new_args [ 'model'] sau '';
match_index locala = Math.floor (tonumber (new_args [ 'meci']) sau 1);
nomatch = new_args locală [ 'nomatch'];

în cazul în care s == „“ atunci
reveni nomatch sau str. _error ( „Șir pentru a căuta este gol“);
Sfârșit
în cazul în care modelul == „“ atunci
reveni nomatch sau str. _error ( „Șir sau model pentru a căuta este gol“);
Sfârșit
dacă Math.abs (start) <1 sau Math.abs (start)> mw. ustring . len (e) atunci
reveni nomatch sau str. _error ( „solicitată poziția de pornire este în afara extremităților string“);
Sfârșit
dacă match_index == 0 atunci
reveni nomatch sau str. _error ( „indicele de meci este nul“);
Sfârșit
în cazul în care plain_flag atunci
model = str. _escapePattern (model);
Sfârșit

rezultat locale
dacă match_index == 1 atunci
- Cel mai simplu caz, găsiți primul meci
rezultat = mw . ustring . se potrivesc (s, model, începe)
altceva
dacă încep> 1 atunci
s = mw. ustring . sub (s, start);
Sfârșit

iterator locale = mw. ustring . gmatch (s, model);
dacă match_index> 0 atunci
- Căutare înainte
pentru w in iterator do
match_index = match_index - 1;
dacă match_index == 0 atunci
rezultat = w;
pauză ;
Sfârșit
Sfârșit
altceva
- căutare înapoi trebuie să extragă toate meciurile
= result_table locale {};
count locală = 1;
pentru w in iterator do
result_table [count] = w;
conta = count + 1;
Sfârșit

rezultat = result_table [count + match_index];
Sfârșit
Sfârșit

dacă rezultatul == zero atunci
dacă nomatch == zero atunci
întoarce str. _error ( 'Match nu a fost găsit');
altceva
nomatch reveni;
Sfârșit
altceva
a reveni rezultat;
Sfârșit
Sfârșit

- [[
poz

Această funcție returnează caracterul de șirul în poziția pos.

Utilizare:
{{#invoke: String | pos | target_string | index}}
SAU
{{#invoke: String | pos | target = target_string | pos = index}}

Parametrii
țintă: Șirul pentru a căuta
pos: Poziția personajului care urmează să fie returnat

Dacă numit folosind parametrii numiți Mediawiki va elimina automat toate
început și de final spații. În anumite circumstanțe , acest lucru poate fi comportamentul
dorit, în altele poate doriți să le păstrați.

Caracterele șirului sunt numerotate începând de la 1. Dacă pos este o valoare negativă , atunci
contează poziția începând de la sfârșitul șirului, -1 este ultimul caracter al șirului,
-2 penultima, etc ...

În cazul în care poziția solicitată este 0 sau în afara capetele șirului, acesta este returnat
o eroare.
]]
Funcția str. pos (cadru)
new_args locale = str. _getParameters (frame. args, {, 'pos' 'țintă'});
target_str locale = new_args [ 'target'] sau '';
pos locale = tonumber (new_args [ 'pos']) sau 0;

dacă pos == 0 sau Math.abs (pos)> mw. ustring . len (target_str) atunci
întoarce str. _error ( 'index String în afara limitelor');
Sfârșit

întoarce-te mw . ustring . sub (target_str, poz, poz);
Sfârșit

- [[
str_find

Această funcție dublează comportamentul {{}} str_find, inclusiv comportamentele sale
neregulate. Această caracteristică este prevăzută pentru compatibilitate cu template - uri mai vechi,
dar este recomandatnu - l folosească în șabloane noi. În dezvoltarea noului cod
este recomandat să folosiți funcția „Find“.

Parametrii
Sursa: Șirul pentru a căuta
țintă: șirul pentru a căuta

Returnează poziția în șirul sursă al primului caracter a fost în
găsit șirul țintă. Caracterele șirului sunt numerotate începând de la 1. Funcția
returnează -1 dacă șirul „țintă“ nu este conținută în „sursă“.

Notă importantă: Pentru compatibilitate cu modelul vechi , dacă șirul „țintă“ este gol sau lipsește
funcția returnează o valoare de „1“
]]
Funcția str. str_find (cadru)
new_args locale = str. _getParameters (frame. args, { 'sursă', 'țintă'});
source_str locale = new_args [ 'sursă'] sau '';
target_str locale = new_args [ 'target'] sau '';

dacă target_str == „“ atunci
întoarce 1;
Sfârșit

de pornire locală = mw. ustring . găsi (source_str, target_str, 1, true)
în cazul de pornire == zero atunci
start = - 1
Sfârșit

 începere retur
Sfârșit

- [[
găsi

Această funcție vă permite să căutați un șir de caractere țintă sau model Lua în cadrul
un alt șir.

Utilizare:
{{#invoke: String | găsi | source_string | target_string | START_INDEX | plain_flag}}
SAU
{{#invoke: String | găsi | source = source_string | target = target_string | start = initial_index | simplu = plain_flag}}

Parametrii
Sursa: Șirul pentru a căuta
țintă: Șirul Lua sau un model pentru a căuta
începe: Locația pentru a începe căutarea, în cazul în care nu este specificat este de 1
neteda: Dacă este adevărat indică faptul că șirul țintă ar trebui să fie tratate ca
text simplu și nu ca un model Lua, în cazul în care este adevărat nespecificat

Dacă numit folosind parametrii numiți Mediawiki va elimina automat toate
început și de final spații. În anumite circumstanțe , acest lucru poate fi comportamentul
dorit, în altele poate doriți să le păstrați.

Această funcție returnează prima poziție mai mare decât sau egală cu „start“ din care
„țintă“ se găsește în „sursă“. Caracterele șirului sunt numerotate începând de la 1.
În cazul în care „țintă“ nu este găsit returnează 0. Dacă „sursă“ sau „țintă“ sunt lipsește sau este gol returnează 0.

Această funcție trebuie să fie sigure pentru UTF-8 siruri de caractere.
]]
Funcția str. găsi (cadru)
new_args locale = str. _getParameters (frame. args, { 'sursă', 'țintă', 'începe', 'simplu'});
source_str locale = new_args [ 'sursă'] sau '';
model local , = new_args [ 'target'] sau '';
start_pos locale = tonumber (new_args [ 'start']) sau 1;
locale neteda = new_args [ „simplu“] sau adevărată;

dacă source_str == „“ sau model == „“ atunci
return 0;
Sfârșit

simplu = str. _getBoolean (simplu);

de pornire locală = mw. ustring . găsi (source_str, model, start_pos, simplu)
în cazul de pornire == zero atunci
start = 0
Sfârșit

 începere retur
Sfârșit

- [[
a inlocui

Această funcție vă permite să înlocuiască un șir de caractere țintă sau un model cu un alt
şir.

Utilizare:
{{#invoke: String | înlocui | source_string | PATTERN_STRING | new_string | number_of_substitutions | plain_flag}}
SAU
{{#invoke: String | înlocui | source = source_string | model = PATTERN_STRING | înlocuiți = new_string |
conta = number_of_substitutions | simplu = plain_flag}}

parametri:
Sursa: Șirul pentru a căuta
model: Șirul Lua sau model pentru a găsi în sursă
înlocui: textul de înlocuire
Numar: Numărul de ori pentru a înlocui șirul, în cazul în care nu sunt specificate toate.
neteda: Dacă este adevărat indică faptul că modelul ar trebui să fie considerate ca text simplu și nu
ca un model Lua, implicit este adevărat
]]
Funcția str. înlocuiți (cadru)
new_args locale = str. _getParameters (frame. args, { 'sursă', 'model', 'conta' 'înlocui', 'simplu'});
source_str locale = new_args [ 'sursă'] sau '';
model local , = new_args [ 'model'] sau '';
locale înlocui = new_args [ 'înlocui'] sau '';
count locala = tonumber (new_args [ 'conta']);
locale neteda = new_args [ „simplu“] sau adevărată;

dacă source_str == „“ sau model == „“ atunci
source_str reveni;
Sfârșit
simplu = str. _getBoolean (simplu);

dacă este simplu , atunci
model = str. _escapePattern (model);
 înlocuiți = mw. ustring . gsub (înlocuiți, "%%", "%%%%"); --Only nevoie pentru a scăpa de secvențe de înlocuire.
Sfârșit

Rezultatul local;

în cazul în care numărul de ~ = zero atunci
rezultat = mw . ustring . gsub (source_str, model, înlocuiți, numărul);
altceva
rezultat = mw . ustring . gsub (source_str, model, înlocuiți);
Sfârșit

a reveni rezultat;
Sfârșit

- [[
Funcția de a utiliza string.rep într - un șablon.
]]

Funcția str. rep (cadru)
repetiții locale = tonumber (cadru. args [2])
în cazul în care nu repetări , atunci
dacă cadru . args [2] == „“ , apoi - dacă al doilea parametru este un șir nul, returnează un șir nul
intoarce ''
altceva
întoarce str. _error ( 'funcția rep se așteaptă un al doilea parametru cu numărul de repetiții, a primit "' .. (frame. args [2] sau '') .. '"')
Sfârșit
Sfârșit
întoarce-te mw . ustring . rep (frame. args [1] sau '', repetiții)
Sfârșit

- [[
Funcția pentru a decoda un procentaj codificat șir.
Apelați funcția mw.uri.decode scribul, a se vedea
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#mw.uri.decode
]]

Funcția str. decodarea (cadru)
valid_enctype locală = {query = true, WIKI = true, PATH = true}

new_args locale = str. _getParameters (cadru. args, { 'sursă', 'enctype'})
sursă locală = new_args [ „sursa“] sau „“
enc_type locală = new_args [ 'enctype'] sau 'QUERY'
dacă nu valid_enctype [enc_type] atunci
enc_type = 'QUERY'
Sfârșit
întoarce-te mw . uri . decodeze (sursa, enc_type)
Sfârșit

- [[
Funcția de a simplifica siruri de caractere cu diacritice
]]

Funcția str. asmblare (cadru)

= Colationarea locale {
{ '[Áàăắằẵẳâấầẫẩǎåǻäǟãȧǡąāảȁȃạặậḁⱥᶏᴂɐᶐɒ]', 'o'},
{ '[ÁÀĂẮẰẴẲÂẤẦẪẨǍÅǺÄǞÃȦǠĄĀẢȀȂẠẶẬḀȺᴁ]', 'A'},
{ '[Ḃḅḇbƀɓ]', 'b'},
{ '[ḂḄḆɃ]', 'B'},
{ '[Ćĉčċçḉȼƈ]', 'c'},
{ '[ĆĈČĊÇḈȻƇ]', 'C'},
{ '[Đḍḓḏðď]', 'd'},
{ '[ĐḌḒḎÐĎ]', 'D'},
{ '[Éèèêếềễểěëẽėȩḝęēḗḕẻȅȇẹệḙḛǝ]', 'e'},
{ '[ÉÈÈÊẾỀỄỂĚËẼĖȨḜĘĒḖḔẺȄȆẸỆḘḚƎ]', 'E'},
{ '[Ḟⅎ]', 'f'},
{ '[ḞℲ]', 'F'},
{ '[Ǵğĝǧġģḡᵹɠ]', 'g'},
{ '[ǴĞĜǦĠĢḠƓ]', 'G'},
{ '[Ĥȟḧḣḩħḥḫẖ]', 'h'},
{ '[ĤȞḦḢḨĦḤḪ]', 'H'},
{ '[Íìĭîǐïḯĩįīỉȉȋịḭı]', 'i'},
{ '[ÍÌĬÎǏÏḮĨĮĪỈȈȊỊḬİ]', 'I'},
{ '[Ĵǰ]', 'j'},
{ '[H]', 'J'},
{ '[Ḱǩķ]', 'k'},
{ '[ḰǨĶ]', 'K'},
{ '[Ĺľļłḷḹḽḻl·l · ŀƚⱡ]', 'l'},
{ '[ĹĽĻŁḶḸḼḺL·L · ĿȽⱠ]', 'L'},
{ '[Mmm]', 'm'},
{ '[Mmm]', 'M'},
{ '[Ńǹňñṅņṇṋṉ]', 'n'},
{ '[ŃǸŇÑṄŅṆṊṈ]', 'N'},
{ '[Óòŏôốồỗổǒöȫőõṍṏȭȯȱøǿǫǭōṓṑỏȍȏơớờỡởợọộ]', 'o'},
{ '[ÓÒŎÔỐỒỖỔǑÖȪŐÕṌṎȬȮȰØǾǪǬŌṒṐỎȌȎƠỚỜỠỞỢỌỘ]', 'O'},
{ '[Pp]', 'p'},
{ '[Pp]', 'P'},
{ '[Ŕřṙŗȑȓṛṝṟ]', 'r'},
{ '[ŔŘṘŖȐȒṚṜṞ]', 'R'},
{ '[SSSSSSSSSS]', 's'},
{ '[ŚṤŜŠṦṠȘṢṨȘ]', 'S'},
{ '[TTTTTTTT]', 't'},
{ '[ŤṪȚṬȚṰṮ]', 'T'},
{ '[Úùŭûǔůüǘǜǚǖűũṹųūṻủȕȗưứừữửựụṳṷṵʉ]', 'u'},
{ '[ÚÙŬÛǓŮÜǗǛǙǕŰŨṸŲŪṺỦȔȖƯỨỪỮỬỰỤṲṶṴɄ]', 'U'},
{ '[Ṽṿʋ]', 'v'},
{ '[ṼṾƲ]', 'V'},
{ '[Ẃẁŵẘẅẇẉⱳ]', 'w'},
{ '[ẂẀŴ̊ẄẆẈⱲ]', 'W'},
{ '[Ýỳŷẙÿỹẏȳỷỵɏƴ]', 'y'},
{ '[ÝỲŶ̊ŸỸẎȲỶỴɎƳ]', 'Y'},
{ '[Źẑžżẓẕƶȥʐⱬ]', 'z'},
{ '[ŹẐŽŻẒẔƵȤʐⱫ]', 'Z'},
}

new_args locale = str. _getParameters (cadru. args, { 'sursă'})
sursă locală = new_args [ „sursa“] sau „“
source --local = mw.ustring.toNFC (sursa)

pentru _, el în ipairs (colaționare) do
source = mw. ustring . gsub (sursa, el [1], el [2])
Sfârșit
sursă de retur
Sfârșit

- [[
Funcția pentru a extrage șirul potrivit pentru ordonarea alfabetică dintr - un titlu.
]]

Funcția str. title_alpha (cadru)
- Evit „I“, „A“, „Die“ , ... care ar da o mulțime de meciuri false în diferite limbi
articole locale = { "The", "Lo", "La", "L ' "Gli", "Le", "Un", "Uno", "Una", "Un'", "The", "O", "Les", "El", "Los", "Las", "Der", "Das"}

sursă locală = cadru. args [ 1 ]
în cazul în care nu sursă sau sursă == „“ atunci
source = mw. titlu . getCurrentTitle (). text 
Sfârșit
în cazul în care nu sursă sau sursă == „“ atunci
intoarce ''
Sfârșit
source = mw. ustring . gsub (sursa, '% (. *%) $', '')
source = str. asmblare ({args = {source}})
source = mw. ustring . gsub (sursa, "^ [ '% (%. ¡¿] *" '')
pentru _, în articolul ipairs (articole) fac
source = mw. ustring . gsub (sursa, "^ (" .. articol .. ") (. *) $", "% 2,% 1")
Sfârșit
source = mw. ustring . gsub (sursa, '^% l', mw. ustring. superior)
source = mw. text . asieta (sursa)
sursă de retur
Sfârșit


- ================================================== ===============
- Clasa de a gestiona parametrii
- ================================================== ===============
Param locală = {}
Param. __index = Param

Param funcționează. nou (par_name, alt_name)
în cazul în care par_name ~ = "$ index" și nu mw. ustring . găsi (par_name, '#') apoi par_name = par_name .. end '#';
Întoarcere SetMetaTable ({
name = par_name,
base_name = mw. ustring . gsub (par_name, '? #', '', 1),
alt = alt_name
}, Param)
Sfârșit

Funcția Param: get_other_value (args, index)
dacă eul. numele == „indicele $“ atunci
toString întoarcere (index), true
altceva
reveni args [mw. ustring . gsub (self. nume, '#', toString (index), 1)] sau '', fals
Sfârșit
Sfârșit

Funcția Param: get_first_value (args, index, base_index)
Funcția value_or_nil (s)
dacă s și s ~ = '' atunci end întoarcere s
întoarceți zero
Sfârșit

dacă eul. numele == „indicele $“ atunci
toString întoarcere (index), true
Sfârșit
în cazul în care indicele == base_index apoi
value_or_nil return (args [mw. ustring. gsub (auto. nume, '#', toString (index), 1)]) sau
value_or_nil (args [auto. base_name]) sau value_or_nil (args [sine. alt]) sau '', fals
altceva
value_or_nil return (args [mw. ustring. gsub (auto. nume, '#', toString (index), 1)]) sau
value_or_nil (args [sine. alt]) sau '', fals
Sfârșit
Sfârșit


setmetatable (Param, {__call = function (_, ...) întoarce Param. nou (...) final})
- ================================================== ===============
-- fine dichiarazione classe per parametro
-- =================================================================

-- =================================================================
-- Classe per gestire il messaggio
-- =================================================================
local Message = {}
Message . __index = Message

function Message . new ( msg )
-- converto parentesi graffe che sono state precedute da "\"
msg = mw . ustring . gsub ( msg , ' \\ {' , '{' )
msg = mw . ustring . gsub ( msg , ' \\ }' , '}' )
local frame = mw . getCurrentFrame (): getParent () or mw . getCurrentFrame ()

return setmetatable ({
msg = msg ,
values = {},
frame = frame ,
}, Message )
end

function Message : reset_values ()
self . values = {}
end

function Message : add_value ( value )
self . values [ # self . values + 1 ] = value
end

function Message : text ()
return self . frame : preprocess ( mw . message . newRawMessage ( self . msg , self . values ): plain ())
end

setmetatable ( Message , { __call = function ( _ , ...) return Message . new (...) end })
-- =================================================================
-- fine dichiarazione classe per messaggio
-- =================================================================



--[[
 Funzione per unire una o più liste di valori in una stringa.

Uso:
{{#invoke:String|arraytostring|par1=xxx|par2=xxx....|parn=xxxx|msg=msg|separator=|congiunzione=|pre=|post=|lista=}}

Parametri:
 par1...parn: i nomi base dei parametri da inserire nel messsaggio, devono contenere il carattere '#' che precisa la
 posizione in cui inserire l'indice. Se viene valorizzato a '$index' avrà automaticamente il valore del
 contatore.
 msg: il messaggio (cioè la riga unitaria) in cui eventuali caratteri '{', '}' dovranno essere
 preceduti da '\', mentre una "|" dovrà essere inserita con il template {{!}}.
 I valori da sostituire sono da inserire come $n ($1 sarà sostituito dal
 valore di par1, $2 dal valore di par2, ecc...)
 separatore: La stringa da inserire tra ogni valore
 congiunzione: La stringa da inserire invece di separatore tra l'ultimo e il penultimo valore. Se
 non precisato viene usato il valore di separatore
 pre: eventuale stringa che precede l'unione delle stringhe
 post: eventuale stringa che segue l'unione delle stringhe
 indentazione: una stringa da ripetere cumulativamente per ogni messaggio (tipicamente '&nbsp')
 lista: se valorizzata a:
 'puntata' imposta i parametri per una lista puntata
 'ordinata' imposta i parametri per una lista ordinata
 'infobox' imposta l'unione come una lista, eccetto che nel caso ci sia
 solo un elemento
 Se lista è valorizzata separatore/congiunzione/pre/post sono ignorati, salvo il caso di 'infobox' e la
 lista contenga solo un elemento.
 nmin = indice iniziale da cui partire a scandire i parametri (di default pari a 1)
 nmax = indice massimo a cui arrivare con i parametri (se non precisato illimitato)
 nobbligatori = l'indice minimo che deve essere valutato anche in presenza di buchi nella sequenza (comunque l'indice massimo
 che viene valutato è nmax)
 baseIndex = valore dell'indice che può essere sostituito da stringa nulla (default = 1)

Esempi di chiamata:
 {{#invoke:string:arraytostring|par1=var#|separatore=,|congiunzione=#32;e#32;}}
 {{#invoke:string:arraytostring|par1=disegnatore #|par2=disegnatore # nota|msg = $1 <small>$2</small>|lista=infobox }}
 {{#invoke:string:arraytostring|par1=editore #|par2=etichetta #|par3=editore # nota| msg=$1 \{\{#if:$2{{!}}$2 <small>$3</small>\}\}|lista=infobox }}

]]
function str . arraytostring ( frame )

local base_args = frame . args
local params = {}
if not base_args then return str . _error ( 'Lista parametri vuota' ) end
-- carico la lista dei parametri
local index = 1
while true do
local par_name = base_args [ 'par' .. index ] or ( index == 1 and base_args [ 'par' ]) or ''
if par_name == '' then break end
--carico eventuale nome alternativo per il primo parametro
local alt_name = base_args [ 'altpar' .. index ] or ( index == 1 and base_args [ 'altpar' ]) or nil
params [ index ] = Param ( par_name , alt_name )
index = index + 1
end
--carico il messaggio
local msg = base_args . msg or '$1'
--if msg == '' then return str._error('Manca il messaggio da riprodurre.') end
local message = Message ( msg )
elements = {}
-- carico gli altri parametri di formattazione
local Nmax = tonumber ( base_args . Nmax ) or tonumber ( base_args . nmax ) or 0
local base_index = tonumber ( base_args . baseindex ) or tonumber ( base_args . baseIndex ) or 1
local index = tonumber ( base_args . Nmin ) or tonumber ( base_args . nmin ) or base_index
local Nobbligatori = tonumber ( base_args . Nobbligatori ) or tonumber ( base_args . nobbligatori ) or base_index - 1
local indentazione = base_args . indentazione or nil
local args = frame : getParent (). args
-- estraggo il primo valore
local found = false

for i , param in ipairs ( params ) do
local v , is_index = param : get_first_value ( args , index , base_index )
if ( not ( is_index ) or base_index <= Nobbligatori ) and v ~= '' then found = true end
message : add_value ( mw . text . trim ( v ))
end
if found then
elements [ # elements + 1 ] = message : text ()
index = index + 1
end
-- elaboro i valori successivi
while true do
if Nmax > 0 and index > Nmax then break end
message : reset_values ()
found = false
for i , param in ipairs ( params ) do
local v , is_index = param : get_other_value ( args , index )
if ( not ( is_index ) or index <= Nobbligatori ) and v ~= '' then found = true end
message : add_value ( mw . text . trim ( v ))
end
if found then
elements [ # elements + 1 ] = message : text ()
elseif index >= Nobbligatori then
break
end
index = index + 1
end
if # elements == 0 then return '' end
-- carico separatori, congiunzione, pre e postazione
local pre , post , separatore , congiunzione , indent = '' , '' , '' , '' , ''
local lista = base_args . lista or ''
if lista == 'puntata' or ( lista == 'infobox' and # elements > 1 ) then
pre = '<UL><LI>'
post = '</LI> \n </UL>'
separatore = '</LI> \n <LI>'
congiunzione = separatore
elseif lista == 'ordinata' then
pre = '<OL><LI>'
post = '</LI> \n </OL>'
separatore = '</LI> \n <LI>'
congiunzione = separatore
else
pre = base_args . pre or ''
post = base_args . post or ''
separatore = base_args . separatore or ''
congiunzione = base_args . congiunzione or separatore
end
if indentazione then
local current_indentazione = indentazione
for i , msg in ipairs ( elements ) do
elements [ i ] = current_indentazione .. elements [ i ]
current_indentazione = current_indentazione .. indentazione 
end
end
return pre .. mw . text . listToText ( elements , separatore , congiunzione ) .. post
end

--[[
 Funzione per unire una lista di valori in una stringa.

Uso:
{{#invoke:String|listtostring|par_number=xxx|msg=msg|separator=|congiunzione=|pre=|post=|lista=}}

Parametri:
 par_number: il numero di parametri che compongono il messaggio
 msg: il messaggio (cioè la riga unitaria) in cui eventuali caratteri '{', '}' dovranno essere
 preceduti da '\', mentre una "|" dovrà essere inserita con il template {{!}}.
 I valori da sostituire sono da inserire come $n (nel primo messaggio $1 sarà sostituito dal parametro posizionale di
 posizione Nmin, $2 da Nmin+2, ecc...., nel secondo messaggio $1 sarà sostituito dal parametro posizionale Nmin+par_number,
 $2 da Nmin+par_number+2, ec....)
 valore di par1, $2 dal valore di par2, ecc...)
 separatore: La stringa da inserire tra ogni valore
 congiunzione: La stringa da inserire invece di separatore tra l'ultimo e il penultimo valore. Se
 non precisato viene usato il valore di separatore
 pre: eventuale stringa che precede l'unione delle stringhe
 post: eventuale stringa che segue l'unione delle stringhe
 lista: se valorizzata a:
 'puntata' imposta i parametri per una lista puntata
 'ordinata' imposta i aprametri per una lista ordinata
 'infobox' imposta l'unione come una lista, eccetto che nel caso ci sia
 solo un elemento
 Se lista è valorizzata separatore/congiunzione/pre/post sono ignorati, salvo il caso di 'infobox' e la
 lista contenga solo un elemento.
 nmax = indice massimo a cui arrivare con i parametri (se non precisato illimitato)
 nobbligatori = l'indice minimo che deve essere valutato anche in presenza di buchi nella sequenza (comunque l'indice massimo
 che viene valutato è nmax)
 baseIndex = valore del primo parametro posizionale da cui cominciare a leggere (default = 1)

]]


function str . listtostring ( frame )

local base_args = frame . args
local params = {}
if not base_args then return str . _error ( 'Lista parametri vuota' ) end
-- carico la lista dei parametri
local base_index = tonumber ( base_args . base_index ) or 1
local par_number = tonumber ( base_args . par_number ) or 1
local Nmax = tonumber ( base_args . nmax ) or 0
local Nobbligatori = tonumber ( base_args . nobbligatori ) or base_index - 1
--carico il messaggio
local message = Message ( base_args . msg or '$1' )
elements = {}
-- carico gli altri parametri di formattazione
local index = base_index
local args = frame : getParent (). args
-- elaboro i valori successivi
local found = true
while true do
if Nmax > 0 and index > Nmax then break end
message : reset_values ()
found = false
for i = index , index + par_number - 1 do
message : add_value ( args [ i ] or '' )
if args [ i ] then
found = true
end
end
if found then 
elements [ # elements + 1 ] = message : text ()
elseif index > Nobbligatori then
break
end
index = index + par_number
end
if # elements == 0 then return '' end
-- carico separatori, congiunzione, pre e postazione
local pre , post , separatore , congiunzione = '' , '' , '' , ''
local lista = base_args . lista or ''
if lista == 'puntata' or ( lista == 'infobox' and # elements > 1 ) then
pre = '<UL><LI>'
post = '</LI> \n </UL>'
separatore = '</LI> \n <LI>'
congiunzione = separatore
elseif lista == 'ordinata' then
pre = '<OL><LI>'
post = '</LI> \n </OL>'
separatore = '</LI> \n <LI>'
congiunzione = separatore
else
pre = base_args . pre or ''
post = base_args . post or ''
separatore = base_args . separatore or ''
congiunzione = base_args . congiunzione or separatore
end
return pre .. mw . text . listToText ( elements , separatore , congiunzione ) .. post
end

--[[
Funzione di aiuto che popola la lista di argomenti, dato che l'utente può voler utilizzare sia
parametri nominati che non nominati. Questo è rilevante perchè gli spazi iniziali iniziali
e finali dei parametri nominati sono eliminati, mentre quelli dei parametri non nominati
non lo sono. Secondo l'applicazione si potrebbe a volte conservare o rimuovere gli spazi.
]]
function str . _getParameters ( frame_args , arg_list )
local new_args = {};
local index = 1 ;
local value ;

for i , arg in ipairs ( arg_list ) do
value = frame_args [ arg ]
if value == nil then
value = frame_args [ index ];
index = index + 1 ;
end
new_args [ arg ] = value ;
end

return new_args ;
end

--[[
Funzione di appoggio per gestire i messaggi di errore.
]]
function str . _error ( error_str )
local frame = mw . getCurrentFrame ();
local error_category = frame . args . error_category or 'Errori riportati dal modulo String' ;
local ignore_errors = frame . args . ignore_errors or false ;
local no_category = frame . args . no_category or false ;

if str . _getBoolean ( ignore_errors ) then
return '' ;
end

local error_str = '<strong class="error">Errore nel modulo String: ' .. error_str .. '</strong>' ;
if error_category ~= '' and not str . _getBoolean ( no_category ) then
error_str = '[[Categoria:' .. error_category .. ']]' .. error_str ;
end

return error_str ;
end

--[[
Funzione di appoggio per interpretare le stringhe come valori booleane
]]
function str . _getBoolean ( boolean_str )
local boolean_value ;

if type ( boolean_str ) == 'string' then
boolean_str = boolean_str : lower ();
if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0'
or booleean_str == 'falso' or boolean_str == '' then
boolean_value = false ;
else
boolean_value = true ;
end
elseif type ( boolean_str ) == 'boolean' then
boolean_value = boolean_str ;
else
error ( 'Nessun valore booleano trovato' );
end
return boolean_value
end

--[[
Funzione di appoggio per aggiungere un carattere di escape a tutti i caratteri speciali,
così da trattare una stringa come testo normale e non come pattern di Lua.
]]
function str . _escapePattern ( pattern_str )
return mw . ustring . gsub ( pattern_str , "([%(%)%.%%%+%-%*%?%[%^%$%]])" , "%%%1" );
end

return str

-- Version history:
-- 29/3/2013 traduzione iniziale da en:module:String versione 540627185 del 26 febbraio 2013
-- 07/05/2013 aggiunta funzione rep da en:module:String versione 552254999 del 26 aprile 2013
-- 19/08/2013 aggiunta funzione arraytostring