Aller au contenu principal

Chaînes de caractères

La brick Chaînes de caractères (catégorie Transform) applique une liste ordonnée d'opérations de nettoyage et de manipulation de texte : espaces, casse, remplacements par regex, accents, découpage, concaténation, encodages… Elle prend un flux en entrée (in) et produit un flux en sortie (out), et remplace à elle seule treize anciennes bricks atomiques.

remarque

Les opérations s'appliquent dans l'ordre déclaré. La plupart convertissent la colonne ciblée en type texte ; une opération sur une colonne absente est simplement ignorée.

Opérations disponibles​

trim : supprimer les espaces en bordure​

ParamètreTypeDescription
columnsliste de textesColonnes à nettoyer

Supprime les espaces (et caractères blancs) en début et fin de valeur.

nom (avant)nom (après)
Ada→Ada
Bob→Bob

case : changer la casse​

ParamètreTypeDescription
columnsliste de textesColonnes ciblées
modetextelower (défaut), upper ou title
nom (avant)nom (après, mode title)
jean dupont→Jean Dupont
MARIE curie→Marie Curie

regex_replace : remplacer​

ParamètreTypeDescription
columntexteColonne ciblée (requis)
patterntexteTexte recherché (requis)
replacementtexteTexte de remplacement (défaut : chaîne vide)
regexbooléenInterpréter pattern comme une expression régulière. Une opération créée depuis l'éditeur part à false ; en son absence, la valeur historique true s'applique.

L'interrupteur Expression régulière de l'éditeur pilote ce paramètre. Laissé éteint, le texte cherché est pris au pied de la lettre — un point remplace un point. Allumé, il devient un motif : un point remplace alors n'importe quel caractère.

tel (avant)tel (après, pattern: [^0-9], replacement: vide)
06 12-34.56→06123456
+33 1 22→33122

remove : supprimer un texte​

ParamètreTypeDescription
columnslisteColonnes ciblées
patterntexteTexte à retirer (requis)
regexbooléenInterpréter pattern comme une expression régulière (défaut false)

Retirer un texte revient à le remplacer par rien. L'opération existe à part parce qu'elle porte sur plusieurs colonnes à la fois, là où regex_replace n'en traite qu'une — et parce qu'un champ « remplacement » laissé vide n'exprime pas la même intention à la relecture.

ville (avant)ville (après, pattern: " (FR)")
PARIS (FR)→PARIS
LYON (FR)→LYON

Un motif vide ne fait rien, et une colonne absente est ignorée.

strip_accents : supprimer les accents​

ParamètreTypeDescription
columnsliste de textesColonnes ciblées
ville (avant)ville (après)
Orléans→Orleans
Besançon→Besancon

split : découper une colonne​

ParamètreTypeDescription
columntexteColonne à découper (requis)
delimitertexteSéparateur (défaut ,)
output_columnsliste de textesNoms des colonnes produites (requis)
keep_originalbooléenConserver la colonne d'origine (défaut false)

Le découpage produit au maximum autant de morceaux que de colonnes de sortie (le dernier morceau garde le reste).

Avant → après (delimiter: " ", output_columns: [prenom, nom]) :

nom_completprenomnom
Ada Lovelace→AdaLovelace
Alan Turing→AlanTuring

concat : concaténer des colonnes​

ParamètreTypeDescription
columnsliste de textesColonnes sources, dans l'ordre (requis)
separatortexteSéparateur (défaut : espace)
output_columntexteColonne de sortie (requis)

Les valeurs vides ou null sont omises (pas de séparateur orphelin).

Avant → après (separator: " ", output_column: nom_complet) :

prenomnomprenomnomnom_complet
AdaLovelace→AdaLovelaceAda Lovelace
Alannull→AlannullAlan

substring : extraire une sous-chaîne​

ParamètreTypeDescription
columntexteColonne source (requis)
startentierPosition de départ, base 0 (défaut 0)
lengthentierLongueur extraite (optionnel : jusqu'à la fin sinon)
output_nametexteColonne de sortie (défaut : écrase la colonne source)
code (avant)dept (après, start: 0, length: 2, output_name: dept)
75001→75
13008→13

dedup_spaces : réduire les espaces multiples​

ParamètreTypeDescription
columnsliste de textesColonnes ciblées

Remplace toute suite d'espaces par un seul, et supprime ceux en bordure.

libelle (avant)libelle (après)
Vis à bois→Vis à bois

base64 : encoder / décoder en Base64​

ParamètreTypeDescription
columnsliste de textesColonnes ciblées
modetexteencode (défaut) ou decode

Les valeurs null restent null.

url_encode : encoder / décoder pour URL​

ParamètreTypeDescription
columnsliste de textesColonnes ciblées
modetexteencode (défaut) ou decode
q (avant)q (après, mode encode)
café crème→caf%C3%A9%20cr%C3%A8me

format_number : formater un nombre en texte​

ParamètreTypeDescription
columntexteColonne numérique source (requis)
format_strtexteGabarit de format Python (défaut : deux décimales)
output_nametexteColonne de sortie (défaut : écrase la colonne source)

Le gabarit suit la syntaxe str.format de Python, par exemple {:.2f} pour deux décimales ou {:,.0f} pour un séparateur de milliers.

prix (avant)prix (après, deux décimales)
12.5→12.50
8→8.00

normalize : normalisation Unicode​

ParamètreTypeDescription
columnsliste de textesColonnes ciblées
modetextenfc (défaut), nfkc, nfd, nfkd ou ascii

Le mode ascii translittère vers l'ASCII pur en supprimant les caractères non convertibles (accents compris), plus agressif que strip_accents. Les formes nfc/nfkc unifient les représentations Unicode équivalentes (utile avant une comparaison ou une jointure).

Bonnes pratiques​

  • Enchaînez le nettoyage standard dans une seule brick : trim → dedup_spaces → case couvre la majorité des besoins de mise au propre.
  • Avant une jointure sur des clés textuelles, normalisez les deux flux à l'identique (casse, accents, espaces) pour éviter les non-correspondances silencieuses.
  • regex_replace avec regex: false est plus sûr pour remplacer un texte littéral contenant des caractères spéciaux (., +, (…).
  • Vérifiez le résultat colonne par colonne avec l'aperçu de données dans l'éditeur de pipeline.

Anciennes bricks remplacées​

Cette méga-brick remplace les bricks atomiques Trim Strings, Normalize Case, Strip Accents, Regex Replace, Split Column, Concat Columns, Extract Substring, Deduplicate Spaces, Encode Base64, Decode Base64, URL Encode, Format Number et Normalize. Voir Bricks héritées pour la table de correspondance.