Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 20 April 2020 10:48

SK2LL
Participant occasionnel
Date d'inscription: 18 Aug 2016
Messages: 25

Remplacer du texte

Bonjour à toutes et tous

J'espère que tout va bien pour vous en cette période si particulière.


Voilà mon souci dans FME :

Dans une base de données, nous utilisons un terme "Groupe" écrit de plusieurs façon. Je souhaite harmoniser ce mot. La difficulté est de trouver ces termes sans emplacement précis.

Exemple

Base de données existante

Pas de Grps
Grp enfant 1
Groupe parent 2
Gr. enfant 4
Grand Grp. parent 2
autre G



Base de données avec résultat voulu

Pas de Groupe
Groupe enfant 1
Groupe parent 2
Groupe enfant 4
Grand Groupe parent 2
autre Groupe


AttributeValueMapper, ne convient pas.



Comment rechercher une valeur écrite de plusieurs manières, placée différemment en fonction des attributs ?

Help

Par avance merci

Hors ligne

 

#2 Mon 20 April 2020 18:44

Pierre Vivet
Participant occasionnel
Lieu: Ornans
Date d'inscription: 29 May 2015
Messages: 18
Site web

Re: Remplacer du texte

Bonjour,

Vous pouvez utiliser le transformer StringPairReplacer : le paramètre Replacement Pairs permet d'indiquer plusieurs paires de remplacement. Par exemple pour traiter les formes "Grps", "Grp", "Gr.", "Grp." :

Code:

Grps Groupe Grp Groupe Gr. Groupe Grp. Groupe

Ensuite ce qui est plus délicat c'est pour l'abréviation "G" tout court, puisqu'on peut la retrouver aisément dans d'autres mots. Là j'utiliserais donc un StringReplacer en l'utilisant avec une expression régulière pour remplacer uniquement les lettres "G" isolées.
Par exemple pour la lettre "G" en fin de chaine précédée d'un espace, on a en Text To Replace :

Code:

\sG$

En en Replacement Text (notez l'espace au début):

Code:

 Groupe

C'est à vous de voir ensuite si vous devez anticiper tous les cas de figure possibles ou si toutes les variations possibles sont dans votre exemple.

Dernière modification par Pierre Vivet (Mon 20 April 2020 18:45)

Hors ligne

 

#3 Mon 20 April 2020 22:42

SK2LL
Participant occasionnel
Date d'inscription: 18 Aug 2016
Messages: 25

Re: Remplacer du texte

Je ne connaissais pas cet outil StringPairReplacer

Merci beaucoup pour ton aide

Hors ligne

 

#4 Tue 21 April 2020 14:35

alex1993
Juste Inscrit !
Date d'inscription: 19 Feb 2019
Messages: 8

Re: Remplacer du texte

Bonjour,
Vous pouvez aussi utiliser des regex avec un ou plusieurs stringseacher pour tester votre valeur d'attribut et un ou plusieurs stringreplacer pour remplacer votre chaîne de caractère. C'est ce que j'ai fais lors d'un stage.
Cdt

Hors ligne

 

Pied de page des forums

Powered by FluxBB