Saltar para o conteúdo

Módulo:string

Origem: Wikcionário, o dicionário livre.



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