característica como fazer -------------------------------------- busca função regexp substituição função regsub divisão - ER crua {entre chaves} ignore M/m opção -nocase global opção -all
A linguagem Tcl não podia ficar de fora da festa.
Bem, de cara aquela dica que é sempre importante: para deixar a ER no formato cru, evitando pré-processamento, basta colocá-la entre {chaves}.
As funções que nos interessam são regexp
para busca e regsub
para substituição. O grande problema da Tcl é que ela não tem suporte às classes POSIX, nem às bordas nem às chaves! Fora isso, a busca de padrões é tranqüila:
if [regexp -nocase {^[a-z][a-z]$} "OI"] { puts "casou!" }
Então, para ignorar maiúsculas e minúsculas, usamos a opção -nocase
, que deve ser colocada logo após o nome da função. Em seguida, colocamos nossa ER no formato cru para evitar problemas, e como não podemos usar as chaves, fazemos a repetição manual, duplicando a lista.
Já uma substituição é muito mais chata de fazer, o formato genérico é regsub -opção ER $texto textonovo variávelnova
, veja:
prompt$ tclsh % regsub -all {[A-Z]} "eScaMOSO" "." sobra 5 % puts $sobra e.ca....
A função regsub
retornou o número de substituições efetuadas: cinco. Mas observe o trabalho para fazer isso, pois colocamos a opção -all
para trocar todas as ocorrências, depois nossa ER crua, depois o texto original a ser trocado, depois o texto novo que será colocado na troca e, por último, o nome de uma variável para colocar o texto modificado.
Aí usamos o puts
para nos mostrar o conteúdo da variável sobra
e finalmente conferir o que nossa ER fez.
Mais informações são encontradas em: