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.

FormuleRésultatExplication
$Essai[0]JPremier caractère
$Essai[5]r6e caractère
$Essai[0:5]J’adocaractères d’indices 0 à 4 (5 exclu), soit du 1er au 5e caractère
$Essai[8:13]Gristcaractè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 tempTout 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]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.

FormuleRésultatExplication
$Essai.split("@")[0] Pierre-Henri.AtoujoursTronçon qui précède le premier « @ » de la chaîne
(soit 1er tronçon du découpage avec « @ »)
$Essai.split("@")[1]
raison.com
Tronçon qui suit le premier « @ » de la chaîne
(soit 2e tronçon du découpage avec « @ »)
$Essai.split("@")[-1]
raison.com
Dernier tronçon du découpage avec « @ »)
$Essai.split(".")[0]
Pierre-Henri
1er tronçon du découpage avec « . »
$Essai.split(".")[1] Atoujours@raison2e tronçon du découpage avec « . »
$Essai.split(".")[-1] comDernier tronçon du découpage avec « . »

Attention !

Si l’un des chaînes de la colonne $Essai ne contient aucun « @ », la formule $Essai.split("@")[1] renverra une erreur #IndexError, alors que $Essai.split("@")[-1]renverra le même résultat que $Essai.split("@")[0].

Exemple 2

Et si j’utilise la chaîne : « J’adore Grist et je l’utilise tout le temps. »

FormuleRésultatExplication
$Essai.split(" ")[0]
J’adore
1er tronçon du découpage avec espace
$Essai.split(" ")[1]Grist2e 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

FormuleRésultatExplication
$Essai.split("@")[0].split(".")[0].title()PrenomRécupération du prénom avec initiales en majuscules (sans accent)
$Essai.split("@")[0].split(".")[1].upper()NOMRécupération du nom en majuscules (sans accent)
$Essai.split("@")[-1].split(".")[0]
domaine
Domaine principal
$Essai.split("@")[-1].split(".")[-1]frDomaine de 2e niveau