Módulo:string
A documentação para este módulo pode ser editada em Módulo:string/doc.
Função length
editar{{#invoke:string|length|1=string}} ou {{#invoke:string|length|string}}
Recebe uma string como argumento e devolve o seu comprimento. Em particular, se a string fornecida é vazia, retorna 0.
{{#invoke:string|length|}}
→ 0{{#invoke:string|length| }}
→ 1{{#invoke:string|length|carro}}
→ 5{{#invoke:string|length|carroça}}
→ 7{{#invoke:string|length| 1234567}}
→ 8{{#invoke:string|length| ab cde}}
→ 7{{#invoke:string|length|borracheiro}}
→ 11{{#invoke:string|length| café åäö}}
→ 9{{#invoke:string|length|paralelepípedo}}
→ 14
- Ver também
- mw.ustring.len
Função substring
editar{{#invoke:string|substring|1=string|2=índice_inicial|3=índice_final}} ou {{#invoke:string|substring|string|índice_inicial|índice_final}}
Recebe uma string e dois inteiros como argumentos e devolve uma substring da string de entrada. O primeiro inteiro é o índice no qual começa a substring e o segundo o índice no qual termina. Da esquerda para a direita, o primeiro caractere da string fornecida está na posição de índice 1; o segundo (se existir) na posição de índice 2; etc. E, da direita para a esquerda, o último caractere da string pode ser referenciado pelo índice -1; o penúltimo (se a string possuir mais do que um caractere) pelo índice -2; o ante-penúltimo, se existir, -3; etc. Por omissão, o índice inicial (parâmetro 2) tem valor 1 (primeiro caractere da string) e o índice final valor -1 (último caractere), de modo que, por omissão desses índices, é devolvida na saída a string de entrada.
{{#invoke:string|substring|}}
→{{#invoke:string|substring| }}
→{{#invoke:string|substring|carroça}}
→ carroça{{#invoke:string|substring|carroça|1|5}}
→ carro{{#invoke:string|substring|carroça||5}}
→ carro{{#invoke:string|substring|carroça||}}
→ carroça{{#invoke:string|substring|carroça|4|7}}
→ roça{{#invoke:string|substring|carroça|4}}
→ roça{{#invoke:string|substring|carroça|4|}}
→ roça{{#invoke:string|substring|carroça|4|-1}}
→ roça{{#invoke:string|substring|O rato roeu a roupa do rei de Roma||1}}
→ O{{#invoke:string|substring|O rato roeu a roupa do rei de Roma|1|1}}
→ O{{#invoke:string|substring|O rato roeu a roupa do rei de Roma|3|6}}
→ rato{{#invoke:string|substring|O rato roeu a roupa do rei de Roma|13|13}}
→ a{{#invoke:string|substring|O rato roeu a roupa do rei de Roma|21|22}}
→ do{{#invoke:string|substring|O rato roeu a roupa do rei de Roma|21|-13}}
→ do{{#invoke:string|substring|O rato roeu a roupa do rei de Roma|-14|-13}}
→ do{{#invoke:string|substring|O rato roeu a roupa do rei de Roma|31|34}}
→ Roma{{#invoke:string|substring|O rato roeu a roupa do rei de Roma|31|-1}}
→ Roma{{#invoke:string|substring|O rato roeu a roupa do rei de Roma|31|55}}
→ Roma{{#invoke:string|substring|O rato roeu a roupa do rei de Roma|34|31}}
→
- Ver também
- mw.ustring.sub
Função charAt
editar{{#invoke:string|charAt|1=string|2=índice}} ou {{#invoke:string|charAt|string|índice}}
Recebe uma string e um inteiro (índice) e, na saída, retorna o caractere que ocupa a posição cujo índice foi fornecido. Um índice igual a 1 corresponde ao primeiro caractere; um índice igual a 2, ao segundo (se existir); um índice igual a 3, ao terceiro (se existir) etc. Um índice igual a -1 corresponde ao último caractere da string; um índice igual a -2, ao penúltimo; um índice igual a -3, ao ante-penúltimo; etc. Se o valor absoluto do índice excede o comprimento da string, é retornada uma mensagem de erro informando que o valor fornecido está fora do escopo.
{{#invoke:string|chartAt|}}
→ NULL{{#invoke:string|charAt| }}
→ NULL{{#invoke:string|chartAt|carroça}}
→ NULL{{#invoke:string|charAt|carroça|}}
→ NULL{{#invoke:string|charAt|carroça| }}
→ NULL{{#invoke:string|charAt|carroça|0}}
→ NULL{{#invoke:string|charAt|carroça|1}}
→ c{{#invoke:string|charAt|carroça|2}}
→ a{{#invoke:string|charAt|carroça|3}}
→ r{{#invoke:string|charAt|carroça|5}}
→ o{{#invoke:string|charAt|carroça|6}}
→ ç{{#invoke:string|charAt|carroça|7}}
→ a{{#invoke:string|charAt|carroça|-1}}
→ a{{#invoke:string|charAt|carroça|-2}}
→ ç{{#invoke:string|charAt|carroça|-3}}
→ o{{#invoke:string|charAt|carroça|10}}
→ O índice fornecido está fora do escopo.{{#invoke:string|charAt|carroça|-10}}
→ O índice fornecido está fora do escopo.{{#invoke:string|charAt|0123456789ABCDEF|15}}
→ E{{#invoke:string|charAt|0123456789ABCDEF|-1}}
→ F{{#invoke:string|charAt|0123456789ABCDEF|-2}}
→ E{{#invoke:string|charAt|0123456789ABCDEF|-3}}
→ D{{#invoke:string|charAt|0123456789ABCDEF|18}}
→ O índice fornecido está fora do escopo.{{#invoke:string|charAt|0123456789ABCDEF|-18}}
→ O índice fornecido está fora do escopo.
Função repete
editar{{#invoke:string|repete|1=string|2=n}} ou {{#invoke:string|repete|string|n}}
→ string concatenada n vezes
{{#invoke:string|repete|carro}}
→ O segundo parâmetro fornecido não é um inteiro positivo.{{#invoke:string|repete|carro|}}
→ O segundo parâmetro fornecido não é um inteiro positivo.{{#invoke:string|repete|carro| }}
→ O segundo parâmetro fornecido não é um inteiro positivo.{{#invoke:string|repete|carro|1}}
→ carro{{#invoke:string|repete|carro|8}}
→ carrocarrocarrocarrocarrocarrocarrocarro{{#invoke:string|repete|carro|-5}}
→ O segundo parâmetro fornecido não é um inteiro positivo.{{#invoke:string|repete|<br>|3}}
→{{#invoke:string|repete|Ελλάδα|10}}
→ ΕλλάδαΕλλάδαΕλλάδαΕλλάδαΕλλάδαΕλλάδαΕλλάδαΕλλάδαΕλλάδαΕλλάδα{{#invoke:string|repete|Češi|15}}
→ ČešiČešiČešiČešiČešiČešiČešiČešiČešiČešiČešiČešiČešiČešiČeši
- Ver também
- mw.ustring.rep e
{{repeat}}
Função procura
editar{{#invoke:string|procura|1=texto|2=substring}} ou {{#invoke:string|procura|texto|substring}}
Retorna a posição da primeira ocorrência de substring em texto. Em particular, se substring não é passada ou não encontrada, o retorno é igual a -1.
{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|}}
→ 1{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|O}}
→ 1{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|rato}}
→ 3{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|rato|5}}
→ -1{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|roupa}}
→ 15{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|roupa|10}}
→ 15{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|roupa|15}}
→ 15{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|roupa|20}}
→ -1{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|rei}}
→ 24{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|rei|10}}
→ 24{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|rei|25}}
→ -1{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|Roma}}
→ 31{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|roma}}
→ -1{{#invoke:string|procura|O rato roeu a roupa do rei de Roma|Romeu}}
→ -1
- Ver também
- mw.ustring.find e
{{str find}}
Função remove_first_word
editar{{#invoke:string|remove_first_word|1=texto}} ou {{#invoke:string|remove_first_word|texto}}
Remove a primeira palavra de texto. Por palavras entendem-se sequências de caracteres (strings) separadas por espaços.
{{#invoke:string|remove_first_word|Fôo bår bàz}}
→ bår bàz{{#invoke:string|remove_first_word| Fôo bår bàz }}
→ bår bàz{{#invoke:string|remove_first_word| a b }}
→ b{{#invoke:string|remove_first_word|Fôo-bår}}
→{{#invoke:string|remove_first_word|Fôo-bår bàz}}
→ bàz
Ver também
editar
local p = {}
--função length
function p.length(frame)
local mystring = frame.args[1]
return mw.ustring.len(mystring)
end
--função substring
function p.substring(frame)
local mystring = frame.args[1]
local i = tonumber(frame.args[2]) or 1
local j = tonumber(frame.args[3]) or -1
return mw.ustring.sub(mystring, i, j)
end
--função charAt
function p.charAt(frame)
local mystring = frame.args[1] or ''
local i = tonumber(frame.args[2]) or 0
local stringlength = mw.ustring.len(mystring)
if math.abs(i) > stringlength then
return frame:expandTemplate{ title = 'erro', args = {
'O índice fornecido está fora do escopo.'} }
end
if i == 0 then
return "NULL"
else
return mw.ustring.sub(mystring, i, i)
end
end
--função repete
function p.repete(frame)
local mystring = frame.args[1]
local n = tonumber(frame.args[2])
if (n == nil) or (n < 1) then
return frame:expandTemplate{ title = 'erro', args = {
'O segundo parâmetro fornecido não é um inteiro positivo.'} }
else
return mw.ustring.rep(mystring, n)
end
end
--função procura
function p.procura(frame)
local mystring = frame.args[1]
local substring = frame.args[2]
local i = tonumber(frame.args[3]) or 1
local result = mw.ustring.find(mystring, substring, i, true)
if result == nil then
return -1
else
return result
end
end
--função remove_first_word
function p.remove_first_word(frame)
local mystring = mw.text.trim(frame.args[1])
if mw.ustring.find(mystring," ", 1, true) == nil then
return ""
else
return mw.ustring.sub(mystring, tonumber(mw.ustring.find(mystring," ", 1, true)+1), -1)
end
end
--função _getParameters
function p._getParameters(frame_args, arg_list)
local new_args = {};
local index = 1;
local value;
for _, 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
--função _getBoolean
function p._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 boolean_str == '' then
boolean_value = false;
else
boolean_value = true;
end
elseif type(boolean_str) == 'boolean' then
boolean_value = boolean_str;
else
error('No boolean value found');
end
return boolean_value
end
--função pattern_escape
function p.pattern_escape(pattern_str)
local invoked = false
local escape = require("Module:string/pattern_escape")
if type(pattern_str) == "table" then
if pattern_str.args then
local frame = pattern_str
invoked = true
if frame.args[1] then
pattern_str = frame.args[1]
else
pattern_str = frame:getParent().args[1]
end
else
error("First argument to pattern_escape should be a string, a number, or a frame object.")
end
elseif not (type(pattern_str) == "string" or type(pattern_str) == "number") then
error("First argument to pattern_escape should be a string or a number.")
end
if invoked then
return (escape(pattern_str)) -- only the first value
else
return escape(pattern_str)
end
end
--função replace
function p.replace(frame)
local new_args = p._getParameters(frame.args, { 'source', 'pattern', 'replace', 'count', 'plain' });
local source_str = new_args['source'] or '';
local pattern = new_args['pattern'] or '';
local replace = new_args['replace'] or '';
local count = tonumber(new_args['count']);
local plain = new_args['plain'] or true;
if source_str == '' or pattern == '' then
return source_str;
end
plain = p._getBoolean(plain);
if plain then
pattern = p.pattern_escape(pattern);
replace = mw.ustring.gsub(replace, "%%", "%%%%"); --Only need to escape replacement sequences.
end
local result;
result = mw.ustring.gsub(source_str, pattern, replace, count);
return result;
end
return p