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é ?

#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: 330

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

 

Pied de page des forums

Powered by FluxBB