In questo articolo vedremo altri sottocomandi del comando string utili per gestire la comparazione tra stringhe.
Questi sottocomandi sono più veloci delle espressioni regolari, ma meno potenti.
Conosceremo in un prossimo articolo le espressioni regolari (regular expressions).
Comparazione
# sintassi
string compare string1 string2
Questo sottocomando compara le due stringhe e restituisce i seguenti valori:
-1sestring1è minore distring20sestring1è uguale astring21sestring1è maggiore distring2
Il confronto avviene in maniera alfabetica, anche se abbiamo a che fare apparentemente con dei numeri.
Prima occorrenza
# sintassi
string first string1 string2
Se la stringa string1 compare all’interno della stringa string2, allora il sottocomando first restituisce la posizione della prima occorrenza.
Se invece non c’è alcuna occorrenza, il sottocomando restituisce il valore -1.
set str1 black
set str2 "I love my black horse and my black cat."
puts "The string \"$str1\" appears for the first time at position [string first $str1 $str2]."
---
The string "black" appears for the first time at position 10.
Ultima occorrenza
# sintassi
string last string1 string2
Se la stringa string1 compare all’interno della stringa string2, allora il sottocomando last restituisce la posizione della sua ultima occorrenza.
Se invece non c’è alcuna occorrenza, il sottocomando restituisce il valore -1.
set str1 black
set str2 "I love my black horse and my black cat."
puts "The string \"$str1\" appears for the last time at position [string last $str1 $str2]."
---
The string "black" appears for the last time at position 29.
Fine parola
# sintassi
string wordend str i
Il sottocomando wordend lavora sulla stringa str e restituisce la posizione della fine della parola intercettata dall’indice i.
Se l’indice i eccede la lunghezza della stringa str, allora il sottocomando restituisce la posizione della fine dell’intera stringa str.
Se l’indice i è negativo il sottocomando restituisce il valore 1.
set str1 "I love my black horse and my black cat."
puts "[string wordend $str1 2]"
---
6
Inizio parola
# sintassi
string wordstart str i
Il sottocomando wordstart lavora sulla stringa str e restituisce la posizione dell’inizio della parola intercettata dall’indice i.
Se l’indice i eccede la lunghezza della stringa str, allora il sottocomando restituisce l’ultima posizione della dell’intera stringa str.
Se l’indice i è negativo il sottocomando restituisce il valore 0.
set str1 "I love my black horse and my black cat."
puts "[string wordstart $str1 5]"
---
2
Nel prossimo articolo impareremo come modificare una stringa.
