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 Fri 11 January 2013 16:30

mstcx
Participant actif
Lieu: Nîmes
Date d'inscription: 21 Feb 2008
Messages: 87

Comment récupérer les chiffres et le texte séparément ?

Bonjour,

A partir d'un champ mélangeant des caractères de texte et de chiffres je souhaite récupérer 2 champs, l'un contenant les chiffres et l'autre le texte.

Exemple :
j'ai un
champ_1
235-A
1-D
35-AB

je voudrai avoir :

un champ_1-txt et un champ_1-num
     A                            235
     D                            1
     AB                          35

Est-ce possible avec un transformer FME, sans passer par PythonCreator ?
Merci,

Marc

Hors ligne

 

#2 Fri 11 January 2013 17:13

ogayte
Participant assidu
Lieu: Saint-Estève
Date d'inscription: 6 Mar 2006
Messages: 658
Site web

Re: Comment récupérer les chiffres et le texte séparément ?

Utilisez AttributeSplitter avec le délimiteur "-"


Olivier Gayte
http://www.veremes.com
+33 (0)4-68-38-65-27

Hors ligne

 

#3 Mon 14 January 2013 16:56

mstcx
Participant actif
Lieu: Nîmes
Date d'inscription: 21 Feb 2008
Messages: 87

Re: Comment récupérer les chiffres et le texte séparément ?

Merci pour votre réponse.
Je n'arrive pas à récupérer les lettres. J'éclate l'attribut List{} en List{1} et List{2}. Seul  List{1} est complété par les chiffres

champ_1
235-A
1-D
35-AB


donne :

List{1}
235
1
35


et List{2} est vide.

Peut on extraire séparément les lettres et les nombres dans une chaîne alphanumérique à l'aide d'un transformer ? (mon champ ne contenant pas toujours de "-").

J'ai trouvé un bout de script Python, mais je ne sais pas comment l'insérer à mon projet.
re.sub('[^a-zA-Z]','','tr7uc85')
renvoie
'truc'
et
re.sub('[^0-9]','','tr7uc85')
renvoie
'785'


Merci

Hors ligne

 

#4 Mon 14 January 2013 17:03

pierreb
Participant actif
Lieu: La Rochelle
Date d'inscription: 3 Oct 2011
Messages: 73

Re: Comment récupérer les chiffres et le texte séparément ?

Et en copiant l'attribut puis en passant sur l'un un string replacer qui supprime les lettres et sur l'autre un string replacer qui supprime les chiffres ?

[a-z] d'un coté, [0-9] de l'autre.

+ une suppresion des caractères spéciaux (les tirets, ce genre de chose).

Hors ligne

 

#5 Mon 14 January 2013 17:18

ogayte
Participant assidu
Lieu: Saint-Estève
Date d'inscription: 6 Mar 2006
Messages: 658
Site web

Re: Comment récupérer les chiffres et le texte séparément ?

S'il n'y a pas toujours de caractère délimiteur, il faut utiliser une expression régulière avec StringSearcher, puis gérer la liste qui en découle.
Par exemple :
pour 235-A
l'expression :
([0-9]*)(-[a-z]*)

permet de distinguer :
Attribute(encoded: utf-8): `_matched_parts{0}' has value `235'
Attribute(encoded: utf-8): `_matched_parts{1}' has value `-A'

Vous avez intérêt de supprimer tous les caractères délimiteurs avant le StringSearcher pour simplifier l'expression régulière.


Olivier Gayte
http://www.veremes.com
+33 (0)4-68-38-65-27

Hors ligne

 

#6 Tue 15 January 2013 07:10

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1023
Site web

Re: Comment récupérer les chiffres et le texte séparément ?

Attention les listes commencent à 0

Dernière modification par heretik25 (Tue 15 January 2013 07:10)


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#7 Tue 15 January 2013 10:30

mstcx
Participant actif
Lieu: Nîmes
Date d'inscription: 21 Feb 2008
Messages: 87

Re: Comment récupérer les chiffres et le texte séparément ?

Merci pour votre aide... et pour cette précision :

heretik25 a écrit:

Attention les listes commencent à 0


Marc

Hors ligne

 

#8 Tue 15 January 2013 15:14

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1023
Site web

Re: Comment récupérer les chiffres et le texte séparément ?

Pas de souci smile


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

Pied de page des forums

Powered by FluxBB