#1 Thu 14 February 2008 12:36
- LBA
- Participant occasionnel
- Date d'inscription: 26 Jul 2006
- Messages: 16
Extraction de sous chaine de caractères
Comment extraire une chaine de caractères comprise entre deux caractères précis ? Ou comment connaître la position d'un caractère donné dans une chaîne de caractère ?
Cdt LBA
Hors ligne
#2 Thu 14 February 2008 13:37
- jaykayone
- Participant actif
- Date d'inscription: 15 Feb 2007
- Messages: 95
Re: Extraction de sous chaine de caractères
Il y a nos deux amis "SubStringExtractor" quand l'index est connu, sinon il faut utiliser le "StringReplacer".
Il supporte aussi les Expressions régulières qui vous permettent d'arriver au résultat souhaité en remplaçant tout ce qui se trouve avant votre caractère de départ et tout ce qui se trouve après le caractère de fin par "rien".
Jeff
Hors ligne
#3 Thu 14 February 2008 13:42
- LASGOUZES
- Participant assidu
- Date d'inscription: 6 Mar 2006
- Messages: 169
Re: Extraction de sous chaine de caractères
TCLCALLER
string first { } {[&_COL1]}
Permet de détecter la première position de " " dans le champ _COL1
Hors ligne
#4 Thu 14 February 2008 13:59
- Matthieu-VEREMES
- Participant actif
- Lieu: Montpellier
- Date d'inscription: 9 Jan 2008
- Messages: 97
- Site web
Re: Extraction de sous chaine de caractères
Pour extraire une chaîne de caractères encadrée par une chaîne de caractères connue au début et à la fin, le tout dans une chaîne de caractères plus longue, le plus simple est d'utiliser GREPPER.
Exemple :
Vous recherchez la chaîne de caractères "LBA" comprise entre "TOTO" et "TATA" dans la phrase "TITITOTOLBATATATUTU" :
Utilisez grepper et cette syntaxe :
^.*TOTO(.*)TATA.*$
Et "LBA" sera stocké dans l'attribut de liste "_matched_parts{0}".
Il faudra "Eclater la liste" pour travailler sur cet attribut.
Cordialement.
Matthieu Ambrosy
Veremes : support FME & version française
support at veremes point com
Hors ligne
#5 Thu 14 February 2008 15:56
- LBA
- Participant occasionnel
- Date d'inscription: 26 Jul 2006
- Messages: 16
Re: Extraction de sous chaine de caractères
En fait la ligne ressemble à ceci :
"R" "CURE" "690010005502000A010E0051" "R DE LA CURE"
J'ai essayé cette syntaxe :
^.*"(.*)".*"(.*)".*"([0-9]+*)".*$
sans résultat (tout est vide).
Hors ligne
#6 Thu 14 February 2008 16:13
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: Extraction de sous chaine de caractères
Bonjour,
Je pense qu'avec Grepper et SubstringExtractor, vous devriez vous en sortir
Hors ligne
#7 Fri 15 February 2008 10:06
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: Extraction de sous chaine de caractères
@LBA,
que cherchez vous à extraire, parce que ^.*"(.*)".*"(.*)".*"([0-9]+*)".*$
je l'aurais plutôt écrit : ^([.]*)"([.]*)"([.]*)"([.]*)"([.]*)"([0-9]+*)"([.]*)$
Alors ensuite vous devriez récupérer des matched part en liste, et si vous êtes sur de l'index, FME 2007 permet de transformer un index de liste en attribut , ce qui devrait permettre la création d'une concaténation.
En espérant ne pas m'être trompé dans ma proposition,
Dernière modification par Brindavoine (Fri 15 February 2008 10:07)
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne