Gruppo Stringhe di Testo↵
Abstract
Questo gruppo contiene le funzioni che operano sulle stringhe es. sostituzione, conversione in maiuscolo.
ascii↵
Restituisce il codice unicode associato al primo carattere di una stringa.
Sintassi:
- ascii(string)
Argomenti:
- string la stringa da convertire in codice unicode
Esempi:
char↵
Restituisce il carattere associato ad un codice unicode.
Sintassi:
- char(code)
Argomenti:
- code un numero codice unicode
Esempi:
concat↵
Concatena svariate stringhe in una sola. Valori NULL sono convertiti in stringhe vuote. Altri valori (come i numeri) sono convertiti in stringa.
Sintassi:
- concat(string1, string2, …)
Argomenti:
- string un valore stringa
Esempi:
concat('To', 'tò') → 'Totò'
concat('a','b','c','d','e') → 'abcde'
concat('Anno ', 2018) → 'Anno 2018'
concat('QGIS 3.0', NULL) → 'QGIS 3.0'
format↵
Formatta una stringa usando gli argomenti forniti.
Sintassi:
- format(string, arg1, arg2, …)
Argomenti:
- string Una stringa con segnaposto %1, %2 e così via per gli argomenti. I segnaposto possono essere ripetuti. Il segnaposto con il numero più basso viene sostituito da arg1, il successivo da arg2, ecc.
- arg Qualsiasi tipo. Qualsiasi numero di argomenti.
Esempi:
format('This %1 a %2','is', 'test') → 'Questo è un test'
format('This is %2','a bit unexpected but 2 is lowest number in string','normal') → 'This is a bit unexpected but 2 is lowest number in string'
format_date↵
Formatta una data o una stringa in un formato stringa personalizzato. Usa le Qt date/time format strings. Vedi QDateTime::toString.
Sintassi:
- Format_date(datetime, format[,language])
Argomenti:
- datetime valora data, ora, o data/ora
- format Modello di stringhe usato per formattare la stringa.
Espressione | Risultato |
---|---|
d | il giorno in numero senza lo zero iniziale (da 1 a 31) |
dd | il giorno in numero con lo zero iniziale (da 01 a 31) |
ddd | il nome locale del giorno abbreviato (es. da 'Mon' a 'Sun') |
dddd | il nome locale del giorno per esteso (es. da 'Monday' a 'Sunday') |
M | il mese in numero senza lo zero iniziale (1-12) |
MM | il mese in numero con lo zero iniziale (01-12) |
MMM | il nome locale del mese abbreviato (es. da 'Jan' a 'Dec') |
MMMM | il nome locale del mese per esteso (es. da 'January' a 'December') |
yy | l'anno come un numero a due cifre (00-99) |
yyyy | l'anno come un numero a quattro cifre |
Queste espressioni possono essere usate per la parte time della stringa da formattare:
Espressione | Risultato |
---|---|
h | l'ora senza lo zero iniziale (da 0 a 23 o da 1 a 12 se visualizzi AM/PM) |
hh | l'ora con lo zero iniziale (da 00 a 23 o da 01 a 12 se visualizzi AM/PM) |
H | l'ora senza lo zero iniziale (da 0 a 23, anche se visualizzi AM/PM) |
HH | l'ora con lo zero iniziale (da 00 a 23, anche se visualizzi AM/PM) |
m | il minuto senza lo zero iniziale (da 0 a 59) |
mm | il minuto con lo zero iniziale (da 00 a 59) |
s | il secondo senza lo zero iniziale (da 0 a 59) |
ss | il secondo con lo zero iniziale (da 00 a 59) |
z | i millisecondi senza gli zeri iniziali (da 0 a 999) |
zzz | i millisecondi con gli zeri iniziali (da 000 a 999) |
AP o A | interpretato come un orario nel formato AM/PM. AP deve essere "AM" oppure "PM". |
ap o a | interpretato come un orario nel formato AM/PM. ap deve essere "am" oppure "pm". |
- language lingua (minuscolo, due o tre lettere, codice lingua ISO 639) utilizzata per formattare la data in una stringa personalizzata. Per impostazione predefinita, viene utilizzata la locale dell'utente di QGIS corrente.
Esempi:
format_date('2012-05-15','dd.MM.yyyy') → '15.05.2012'
format_date('2012-05-15','d MMMM yyyy','fr') → '15 mai 2012'
format_date('2012-05-15','dddd') → 'Tuesday', se la lingua corrente è una variante inglese
format_date('2012-05-15 13:54:20','dd.MM.yy') → '15.05.12'
format_date('13:54:20','hh:mm AP') → '01:54 PM'
format_number↵
Restituisce un numero formattato con il separatore locale per le migliaia. Inoltre tronca il numero al numero di posti forniti.
Sintassi:
- format_number(number[,places][,language])
[ ] indica componenti opzionali
Argomenti:
- number numero da formattare
- places intero rappresentante il numero di posizioni decimali a cui troncare la stringa.
- language lingua (minuscolo, due o tre lettere, codice lingua ISO 639) utilizzata per formattare il numero in una stringa. Per impostazione predefinita, viene utilizzata la locale dell'utente di QGIS corrente.
Esempi:
format_number(10000000.332,2) → '10,000,000.33' se ad es. la locale corrente è una variante inglese
format_number(10000000.332,2,'fr') → '10 000 000,33'
left↵
Restituisce una sottostringa che contiene gli n caratteri più a sinistra della stringa.
Sintassi:
- left(string, length)
Argomenti:
- string una stringa
- length intero. Il numero di caratteri da estrarre dalla parte sinistra della stringa.
Esempi:
length↵
Restituisce il numero di caratteri in una stringa o la lunghezza di una geometria di tipo linestring.
Variabile stringa↵
Restituisce il numero di caratteri contenuti in una stringa.
Sintassi:
- length(string)
Argomenti:
- string stringa della quale calcolare la lunghezza
Esempi:
Variabile geometria↵
Calcola la lunghezza di un oggetto a geometria lineare. I calcoli sono sempre planimetrici nel Sistema di Riferimento Spaziale (SR) di detta geometria, e l'unità di misura della lunghezza restituita è conforme all'unità di misura del SR. Ciò differisce dal calcolo eseguito dalla funzione $length, la quale esegue calcoli ellissoidici basati sull'ellissoide del progetto e sulle impostazioni delle unità di distanza.
Sintassi:
- length(geometry)
Argomenti:
- geometry oggetto geometria linea
Esempi:
lower↵
Converte una stringa in lettere minuscole.
Sintassi:
- lower(string)
Argomenti:
- string la stringa da convertire in minuscolo
Esempi:
lpad↵
Restituisce una stringa riempita a sinistra fino alla larghezza specificata, utilizzando un carattere di riempimento. Se la larghezza della destinazione è inferiore alla lunghezza della stringa, la stringa viene troncata.
Sintassi:
- lpad(string, width, fill)
Argomenti:
- string stringa da riempire
- width lunghezza della nuova stringa
- fill carattere con il quale riempire lo spazio rimanente
Esempi:
Altri esempi utili↵
se volessi popolare un campo in modo da ottenere segnale01.png, segnale02.png...segnale99.png
id | path |
---|---|
10 | segnale01.png |
15 | segnale02.png |
22 | segnale03.png |
.. | .. |
520 | segnale99.png |
espressione utilizzata:
--
per ricostruire un identificativo univoco CODICE_ASC
CODICE_STR | NUM_CIV | BARRATO | CODICE_ASC |
---|---|---|---|
000020 | 1 | 0000002000001 | |
000575 | 1 | 0000057500001 | |
001785 | 1 | 1 | 00001785000011 |
005495 | 38 | 1 | 00005495000381 |
001480 | 572 | 10 | 000014800057210 |
000150 | 1 | 0000015000001 |
ltrim↵
Rimuove la stringa più lunga contenente solo i caratteri specificati (un carattere spazio come impostazione predefinita) dall'inizio della stringa.
Sintassi:
- ltrim(string[, characters=' '])
Argomenti:
- string stringa da troncare
- characters caratteri da troncare
Esempi:
regexp_match↵
Restituisce la prima posizione di corrispondenza che soddisfa un'espressione regolare all'interno di una stringa, o 0 se la sottostringa non viene trovata.
Sintassi:
- regexp_match(input_string, regex)
Argomenti:
- input_string la stringa da confrontare con l'espressione regolare
- regex L'espressione regolare da confrontare. I caratteri backslash (\) devono essere doppiamente escaped (es "\s" per selezionare un carattere spazio bianco).
Esempi:
Osservazioni:
- ^ «apice» ha due significati: se messo all’inizio della regex impone che la linea cominci con quello che segue l’apice; se usato con le parentesi quadre e messo prima di un carattere significa: tranne il carattere che segue, è una negazione
- $ «dollar » se messa alla fine della regex impone che la linea finisca con quello che precede il dollaro
- . «punto» qualunque carattere
- * «asterisco» accetta zero o più ripetizioni del carattere precedente
- + «più» accetta una o più ripetizioni del carattere precedente
[ ]
«parentesi quadre» tutti i caratteri all’interno delle [ ] sono accettati: le due parentesi si comportano come un singolo carattere[^ ]
«parentesi quadre con apice» tutti i caratteri tranne quelli all’interno delle [ ] sono accettati- / «slash» inizia/termina l’espressione regolare
- «barra rovesciata» tratta il carattere speciale che segue come un normale carattere testuale o viceversa tratta un normale carattere come un carattere speciale
--
Altri esempi↵
vedi qui
regexp_replace↵
Restituisce una stringa con la parte che soddisfa l'espressione regolare sostituita.
Sintassi:
- regexp_replace(input_string, regex, replacement)
Argomenti:
- input_string la stringa in cui sostituire
- regex L'espressione regolare per sostituire. I caratteri backslash devono essere double escaped (es "\s" per selezionare un carattere spazio bianco).
- replacement La stringa che sostituirà qualsiasi occorrenza corrispondente dell'espressione regolare passata. I gruppi catturati possono essere inseriti nella stringa di sostituzione usando
\\1
,\\2
, etc.
Esempi:
regexp_replace('QGIS SHOULD ROCK','\\sSHOULD\\s',' DOES ') → 'QGIS DOES ROCK'
regexp_replace('ABC123','\\d+','') → 'ABC'
regexp_replace('my name is John','(.*) is (.*)','\\2 is \\1') → 'Il mio nome è Giovanni'
Esempi:o 2
Tabella:
id | particella |
---|---|
1 | 00AXJ |
2 | 000BBG |
3 | 0JJU |
Aggiornare il campo particella
togliendo gli zeri iniziali:
espressione da usare:
risultato:
id | particella |
---|---|
1 | AXJ |
2 | BBG |
3 | JJU |
ecco un tool dove provare le regexp: https://regex101.com/r/SSDBmj/1
Esempi:o 3
id | valore |
---|---|
1 | data20200224 |
2 | data20200225 |
3 | data20200226 |
eliminare data e inserire un simbolo tra anno, mese e giorno
espressione da usare:
risultato:
id | valore |
---|---|
1 | 2020-02-24 |
2 | 2020-02-25 |
3 | 2020-02-26 |
Esempi:o 4
Tabella:
id | particella |
---|---|
1 | 00AXJ.su |
2 | 000BBG.cot |
3 | 0JJU.1234 |
Aggiornare il campo particella
togliendo tutto quello dopo il punto (.):
espressione da usare:
risultato:
id | particella |
---|---|
1 | 00AXJ |
2 | 000BBG |
3 | 0JJU |
qui altri esempi
regexp_substr↵
Restituisce la porzione di una stringa che soddisfa l'espressione regolare passata.
Sintassi:
- regexp_substr(input_string, regex)
Argomenti:
- input_string la stringa in cui cercare
- regex L'espressione regolare da contro abbinare. I caratteri backslash devono essere "double escaped" ( es
"\\s"
per selezionare un carattere spazio).
Esempi:
replace↵
Restituisce una stringa con la stringa, array o mappa di stringhe passate sostituite.
Variabile stringa & array↵
Restituisce una stringa con la stringa o array di stringa passate sostituite da una stringa o un array di stringhe.
Sintassi:
- replace(string, before, after)
Argomenti:
- string la stringa in ingresso
- before la stringa o array di stringhe da sostituire
- after la stringa o l'array di stringe da usare come sostituzione
Esempi:
replace('QGIS SHOULD ROCK','SHOULD','DOES') → 'QGIS DOES ROCK'
replace('QGIS ABC',array('A','B','C'),array('X','Y','Z')) → 'QGIS XYZ'
replace('QGIS',array('Q','S'),'') → 'GI'
Variabile mappa↵
Restituisce una stringa con le chiavi della mappa fornite sostituite dai valori abbinati. Sono valutate per prime le chiavi della mappa più lunghe.
Sintassi:
- replace(string, map)
Argomenti:
- string la stringa in ingresso
- map la mappa che contiene le chiavi e i valori
Esempi:
replace('APP SHOULD ROCK',map('APP','QGIS','SHOULD','DOES')) → 'QGIS DOES ROCK'
replace('forty two',map('for','4','two','2','forty two','42')) → '42'
right↵
Restituisce una sottostringa che contiene gli n caratteri più a destra della stringa.
Sintassi:
- right(string, length)
Argomenti:
- string una stringa
- length intero. Il numero di caratteri da estrarre dalla parte destra della stringa.
Esempi:
rpad↵
Restituisce una stringa riempita a destra della larghezza specificata, utilizzando un carattere di riempimento. Se la larghezza della destinazione è inferiore alla lunghezza della stringa, la stringa viene troncata.
Sintassi:
- rpad(string, width, fill)
Argomenti:
- string stringa da riempire
- width lunghezza della nuova stringa
- fill carattere con il quale riempire lo spazio rimanente
Esempi:
rtrim↵
Rimuove la stringa più lunga contenente solo i caratteri specificati (un carattere spazio come impostazione predefinita) dalla fine della stringa.
Sintassi:
- rtrim(string[, characters=' '])
Argomenti:
- string stringa da troncare
- characters caratteri da troncare
Esempi:
strpos↵
Restituisce la prima posizione di corrispondenza di una sottostringa dentro in un'altra stringa o 0 se la sottostringa non viene trovata.
Sintassi:
- strpos(haystack, needle)
Argomenti:
- haystack stringa in cui deve essere cercata
- needle stringa da cercare
Esempi:
substr↵
Restituisce una parte di una stringa.
Sintassi:
- substr(string, start[, length])
[ ] indica componenti opzionali
Argomenti:
- string l'intera stringa in entrata
- start intero rappresentante la posizione di partenza dalla quale estrarre; se il valore di partenza è negativo, la stringa restituita inizierà dalla fine della stringa meno il valore di partenza
- length intero rappresentante la lunghezza della stringa da estrarre; se la lunghezza è negativa, la stringa restituita ometterà la lunghezza data di caratteri dalla fine della stringa
Esempi:
substr('HELLO WORLD',3,5) → 'LLO W'
substr('HELLO WORLD',3,5) → 'WORLD'
substr('HELLO WORLD',-5) → 'WORLD'
substr('HELLO',3,-1) → 'LL'
substr('HELLO WORLD',-5,2) → 'WO'
substr('HELLO WORLD',-5,-1) → 'WORL'
title↵
Converte tutte le parole in "title case" (tutte le parole in minuscolo con la prima lettera maiuscola)
Sintassi:
- title(string)
Argomenti:
- string stringa da convertire in minuscolo con la prima lettera maiuscola
Esempi:
to_string↵
Converte un numero in stringa.
Sintassi:
- to_string(number)
Argomenti:
- number Valore intero o reale. Il numero da convertire in stringa.
Esempi:
trim↵
Rimuove tutti gli spazi vuoti (spazi, tabulazioni, etc.) all'inizio e alla fine di una stringa.
Sintassi:
- trim(string)
Argomenti:
- string stringa da troncare
Esempi:
upper↵
Converte una stringa in lettere maiuscole.
Sintassi:
- upper(string)
Argomenti:
- string la stringa da convertire in maiuscolo
Esempi:
wordwrap↵
Restituisce una stringa posta a capo ad un massimo/minimo numero di caratteri.
Sintassi:
- wordwrap(string, wrap_length, delimiter_string)
Argomenti:
- string la stringa da spezzare
- wrap_length un intero. Se wrap_length è positivo il numero rappresenta il numero massimo ideale di caratteri a cui spezzare; se negativo, il numero rappresenta il numero minimo di caratteri a cui spezzare.
- delimiter_string il delimitatore stringa per spezzare in una nuova linea (opzionale).
Esempi:
wordwrap('UNIVERSITY OF QGIS',13) → 'UNIVERSITY OF
QGIS'
wordwrap('UNIVERSITY OF QGIS',-3) → 'UNIVERSITY OF
QGIS'
Per legende con testo lungo, tipico delle legende per carte geologiche: