#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