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

Printemps des cartes 2024

#1 Wed 17 May 2023 17:40

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1620

Simplifier une liste

Bonjour,

J’ai des listes séparées par des tirets et je voudrais les simplifier. Par exemple :
-    Du 6 au 7 - Du 7 au 8 deviendrait Du 6 au 8
-    Du 44 au 45 - Du 45 au 46 - Du 46 au 47 - Du 47 au 48 - Du 48 au 49 deviendrait Du 44 au 49
-    Du 150 au 151 - Du 151 au 152 - Du 152 au 153 - Du 153 au 154 - Du 154 au 155 - Du 155 au 156 - Du 156 au 157 - Du 157 au 158 - Du 158 au 159 - Du 159 au 160 - Du 160 au 161 - Du 161 au 162 - Du 162 au 163 - Du 163 au 164 - Du 164 au 165 - Du 165 au 166 - Du 166 au 167 - Du 167 au 168 - Du 168 au 169 - Du 169 au 170 - Du 170 au 171 deviendrait Du 150 au 171

Comment faire ?
Merci.

Hors ligne

 

#2 Wed 17 May 2023 18:40

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1620

Re: Simplifier une liste

Voici une capture d'écran de liste à simplifier en pj


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#3 Wed 17 May 2023 22:56

SRapenne
Participant occasionnel
Date d'inscription: 2 Feb 2020
Messages: 28

Re: Simplifier une liste

Bonjour,

de nouveau du boulot pour une expression régulière et un StringReplacer, cette fois :
- text to replace= (Du [0-9]+).*(au [0-9]+)$
- replacement text = \1 \2

Serge

Hors ligne

 

#4 Wed 17 May 2023 23:03

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

Re: Simplifier une liste

Je n'ai pas l'impression que la solution de Serge fonctionne correctement.
Edit : au temps pour moi j'avais mais configuré le StringReplacer smile La solution est plus simple que la mienne.

Une autre solution avec un StringSearcher en utilisant les listes des sous-expressions, un ListeRangeExtractor puis un AttributeCreator, voir ci-joint.

Edit : Attention, les deux solutions ne prennent pas en compte le fait qu'il pourrait y avoir des trous dans la numérotation, je ne sais pas si c'est votre cas ou si vous avez systématiquement tous les nombres entre le plus petit et le plus grand.

Dernière modification par p.jeremie (Wed 17 May 2023 23:06)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#5 Thu 18 May 2023 11:07

AlineC
Membre du bureau
Lieu: AVIGNON
Date d'inscription: 5 Sep 2005
Messages: 2094
Site web

Re: Simplifier une liste

Bonjour,
Est ce que ce serait possible d'extraire tous les chiffres ?
de prendre le plus petit et le plus grand ?
Et ensuite de reconstituer le texte ?
Juste une idée ...

Hors ligne

 

#6 Thu 18 May 2023 11:35

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

Re: Simplifier une liste

AlineC a écrit:

Bonjour,
Est ce que ce serait possible d'extraire tous les chiffres ?
de prendre le plus petit et le plus grand ?
Et ensuite de reconstituer le texte ?
Juste une idée ...


C'est à peu près ce que je fais dans ma proposition.

Serge lui prend le premier et le dernier de la chaîne de caractères.

Hors ligne

 

#7 Thu 18 May 2023 14:08

SRapenne
Participant occasionnel
Date d'inscription: 2 Feb 2020
Messages: 28

Re: Simplifier une liste

Je plaide coupable, j'adore les regexp, j'ai donc immédiatement pensé à cette solution surtout que dans les exemples donnés, les chiffres étaient ordonnées. En second lieu, j'avais pensé à l'idée d'extraire les valeurs, j’étais parti sur des attributeSplitter mais la solution de p.jeremie est arrivé alors j'ai laissé tombé ( surtout que je ne connaissait pas le stringSearcher)

Serge

Dernière modification par SRapenne (Thu 18 May 2023 14:11)

Hors ligne

 

#8 Thu 18 May 2023 18:07

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1620

Re: Simplifier une liste

Bonjour,

A p.jeremie, merci cela fonctionne.
Belle plage en effet.

Hors ligne

 

Pied de page des forums

Powered by FluxBB