Extraire une sous-chaîne de caractères
Pour ne pas alourdir le propos, on utilisera le mot « colonne », mais selon la vue, ce sera « Colonne » ou « Champ ».
- Vue « Table » : Colonne
- Vue « Fiche » : Champ
- Vue « Liste de fiches » : Champ
Voici deux fonctions qui permettent d’extraire une sous-chaîne d’un mot, d’un courriel ou toute autre chaîne de caractères.
Chaîne de caractères ou tableau ?
En fait chaque chaîne de caractères est manipulable comme un tableau de type array dont chaque caractère est un élément numéroté de 0 à « longueur – 1 ».
Prenons un exemple.
Voici une chaîne entre guillemets : « J’adore Grist et je l’utilise tout le temps. »
Admettons que cette chaîne est une valeur de la colonne $Essai.
| Formule | Résultat | Explication |
|---|---|---|
$Essai[0] | J | Premier caractère |
$Essai[5] | r | 6e caractère |
$Essai[0:5] | J’ado | caractères d’indices 0 à 4 (5 exclu), soit du 1er au 5e caractère |
$Essai[8:13] | Grist | caractères d’indices 8 à 12 (13 exclu), soit du 9e au 13e caractère. |
$Essai[:-2] | J’adore Grist et je l’utilise tout le temp | Tout sauf les 2 derniers caractères. |
Couper une chaîne de caractères
Fonction utilisée
split()
Pour couper une chaîne, on a besoin d’un caractère séparateur.
Par exemple dans un courriel, on peut utiliser le « @ » ou le « . » comme séparateur.
Syntaxe
split("s")[i] où s est le séparateur et i l’indice.
Exemple 1
Prenons la chaîne de caractères « Pierre-Henri.Atoujours@raison.com ».
Les tronçons obtenus par le découpage avec le caractère séparateur sont numérotés à partir de 0.
| Formule | Résultat | Explication |
|---|---|---|
$Essai.split("@")[0] | Pierre-Henri.Atoujours | Tronçon qui précède le premier « @ » de la chaîne (soit 1er tronçon du découpage avec « @ ») |
| raison.com | Tronçon qui suit le premier « @ » de la chaîne (soit 2e tronçon du découpage avec « @ ») |
| raison.com | Dernier tronçon du découpage avec « @ ») |
| Pierre-Henri | 1er tronçon du découpage avec « . » |
| Atoujours@raison | 2e tronçon du découpage avec « . » |
$Essai.split(".")[-1] | com | Dernier tronçon du découpage avec « . » |
Attention !
Si l’un des chaînes de la colonne $Essai ne contient aucun « @ », la formule renverra une erreur #IndexError, alors que $Essai.split("@")[1]renverra le même résultat que $Essai.split("@")[-1]$Essai.split("@")[0].
Exemple 2
Et si j’utilise la chaîne : « J’adore Grist et je l’utilise tout le temps. »
| Formule | Résultat | Explication |
|---|---|---|
| J’adore | 1er tronçon du découpage avec espace |
| Grist | 2e tronçon du découpage avec espace |
$Essai.split(" ")[-1] | temps. | Dernier tronçon du découpage avec espace |
Exemple 3
Pour décomposer des courriels qui sont tous de la même forme prenom.nom@domaine.fr
| Formule | Résultat | Explication |
|---|---|---|
$Essai.split("@")[0].split(".")[0].title() | Prenom | Récupération du prénom avec initiales en majuscules (sans accent) |
| NOM | Récupération du nom en majuscules (sans accent) |
| domaine | Domaine principal |
| fr | Domaine de 2e niveau |
