Aloha
Je dois avoir un problème de mise en route avec ce langage parce que je n'arrive toujours pas à le manipuler avec aisance.
Donc voilà mon besoin :
extraire d'une chaîne (obtenue par l'instruction [FME_GetAttribute CODE_RIVOLI]) pouvant être soit C-CCCC (où C est un chiffre) soit C-ACCC (où C est un chiffre et A une lettre) la partie post tiret.
J'ai donc scripté :
Cela fonctionne sur les chaînes toute numérique (la première branche de mon regexp) mais pas sur la chaîne "1-B001".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if {[FME_GetAttribute CODE_RIVOLI] != ""} then { regexp {(\d*)-(\d{4})|(\w+\d{3})-.*} [FME_GetAttribute CODE_RIVOLI] A_ NUM_ RIVOLI_ puts "CODE rivoli d'origine [FME_GetAttribute CODE_RIVOLI]" puts "A_ : $A_" puts "RIVOLI : $RIVOLI_"}
Quelqu'un a-t'il une idée ? Quelqu'un voit où je me suis planté ?
D'avance merci
PS. Suis-je obligé de récupéré A_ et NUM_ ? Ne puis-je pas récupérer seulement la partie de ma chaîne m'intéressant sans les deux autres (la complète et le premier membre) ?
La solution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if {[FME_GetAttribute CODE_RIVOLI] != ""} then { regexp -expanded -- {(?:\d*) \- ([[:alnum:]]{4}) .*} [FME_GetAttribute CODE_RIVOLI] A_ RIVOLI_ puts "CODE rivoli d'origine [FME_GetAttribute CODE_RIVOLI]" puts "A_ : $A_" puts "RIVOLI : $RIVOLI_"}
Partager