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

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 04 May 2022 15:49

matt84foot
Juste Inscrit !
Date d'inscription: 25 Apr 2022
Messages: 5

Remplacer une chaîne de caractère en début de ligne

Bonjour,

Je souhaite une cellule qui contient des adresses mais les types de noms de voie sont écris en abrégés. J'aimerais renommer le début des lignes. Pour cela je pense que le transformateur adapté à mon cas est le STRINGREPLACER avec une expression conditionnel mais je n'arrive pas à le paramétrer correctement.

Voici la liste :
R DU MARCHE
CHE DU STADE
R TRAVERSIERE
AV SANTA VITTORIA
IMP DE LA PINEDE
PL DE L'HORLOGE

J'avais réussi par une autre méthode mais il me remplace le CHE de MARCHE et le AV de TRAVERSIERE.

Du coup, j'ai essayé dans le text to replace, l'expression suivante : ^(IMP|PL|AV|R|CHE)$ est-ce bon comme cela ?

Avez-vous une solution ?

Merci bien.

Hors ligne

 

#2 Wed 04 May 2022 19:42

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: Remplacer une chaîne de caractère en début de ligne

Bonjour,

Par quoi souhaitez-vous remplacer les R, CHE, AV, IMP et PL de début de ligne ? Par rien ?
Si c'est ça l'expression rationnelle qu'il vous faut dans le StringReplacer est :

Code:

^(IMP |PL |AV |R |CHE )

J'ai ajouté une espace après chacun de vos termes pour la remplacer également.
L'expression se lit comme suit :
^ : début de ligne
(IMP |PL |AV |R |CHE ) groupe de capture grâce aux () et chaque terme séparé par | correspond à une alternative possible à sélectionner (un OU en fait)
Et pas de $ à la fin qui signifie fin de ligne, ce qui reviendrait à chercher un ligne commençant par "CHE " et finissant juste après, donc ne contenant que ça (ou un des autres termes).

Si vous voulez tester vos expressions rationnelles, vous pouvez passer par un site spécialisé comme https://regex101.com/r/te1YYd/1
Ou sinon dans FME, via le StringSearcher qui permet de tester son expression. Dommage que cet écran ne soit pas sur chaque transformer avec une possibilité de renseigner une expression rationnelle, d'ailleurs.

Ressource Safe sur cet écran :
https://docs.safe.com/fme/2022.1/html/F … Editor.htm
qui précise que le moteur d'expressions rationnelles utilisé par FME est celui de PERL

Hors ligne

 

#3 Thu 05 May 2022 13:46

matt84foot
Juste Inscrit !
Date d'inscription: 25 Apr 2022
Messages: 5

Re: Remplacer une chaîne de caractère en début de ligne

Bonjour,

Merci beaucoup pour votre aide. Le transformateur a bien fonctionné correctement.

Hors ligne

 

Pied de page des forums

Powered by FluxBB