#1 Wed 17 May 2023 17:40
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
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
#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: 427
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 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)
Hors ligne
#5 Thu 18 May 2023 11:07
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: 427
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 ...
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: 1670
Re: Simplifier une liste
Bonjour,
A p.jeremie, merci cela fonctionne.
Belle plage en effet.
Hors ligne