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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Le portail retrouve peu à peu ses fonctionnalités.

Les listes ne fonctionnent pas mais nous mettons tout en oeuvre pour les réactiver rapidement.

Si vous avez pris contact avec l'association (petite enveloppe en haut/droite), sachez que nous lisons vos messages mais que les mails ne partent pas (#bug).

Ne soyez pas surpris si vous ne recevez pas de réponse.

#1 Fri 08 March 2019 12:14

GlaDal
Membre
Date d'inscription: 30 Aug 2013
Messages: 237

QGIS 3: Expression régulière pour séparer champ en plusieurs champs

Bonjour à tous,

Je reviens vers vous pour faire quelque chose que je pensais simple au départ et qui s'avère un peu plus difficile (pour moi).

J'aimerais pouvoir diviser un champ en plusieurs champs à l'aide d'un caractère permettant de délimiter les chaines de caractères. Plus simple avec un exemple :

En entrée :
Champ "A" : 456_REP_GRAN_01_PC

En sortie :
Champ "B" : 456
Champ "C" : REP
Champ "D" : GRAN
Champ "E" : 01
Champ "F" : PC

Et cerise sur le gâteau, j'aimerais pouvoir l'automatiser et donc placer ça dans mon modèle.

J'ai bien compris qu'il fallait utiliser une expression régulière et certainement python.

D'avance merci pour votre aide !

Hors ligne

 

#2 Fri 08 March 2019 14:49

sylvain poupard
Membre
Date d'inscription: 19 Mar 2009
Messages: 227

Re: QGIS 3: Expression régulière pour séparer champ en plusieurs champs

Bonjour,

Si la structure est la même à chaque fois vous pouvez utiliser la fonction substr :

fonction substr
Renvoie une partie de chaîne de caractères.
Syntaxe
substr(input_string, startpos, length)
Arguments

input_string
la chaîne complète en entrée
startpos
un entier représentant la position à partir de laquelle l'extraction commence
length
un entier représentant le nombre de caractères à extraire

Exemples
substr('SALUT MONDE',3,5) → 'LUT M'


Pour l'automatiser je ne sais pas.

Bon courage

Hors ligne

 

#3 Fri 08 March 2019 15:32

GlaDal
Membre
Date d'inscription: 30 Aug 2013
Messages: 237

Re: QGIS 3: Expression régulière pour séparer champ en plusieurs champs

Pardon, j'aurais du préciser que la longueur des chaines de caractère entre les '_' pouvait changer...

Hors ligne

 

#4 Fri 08 March 2019 15:56

dominique.lys
Membre
Date d'inscription: 5 Oct 2006
Messages: 381
Site web

Re: QGIS 3: Expression régulière pour séparer champ en plusieurs champs

Si c'est pour intégrer dans un modèle vous pouvez enchainer le géotraitement "calculer un champs" pour chacun de vos 5 champs avec cette expression :

Code:

 array_get(  string_to_array( '456_REP_GRAN_01_PC', '_'), 0)

Faites varier l'index de la fonction array_get de 0 à 4 selon le champs à calculer

Hors ligne

 

#5 Fri 08 March 2019 17:22

GlaDal
Membre
Date d'inscription: 30 Aug 2013
Messages: 237

Re: QGIS 3: Expression régulière pour séparer champ en plusieurs champs

Dominique et Sylvain merci pour vos réponses. Je ne connais pas cette fonction array (enfin, j'ai lu vite fait un ou deux trucs la dessus). Je teste et ça me donne l'occasion de me pencher dessus.

Hors ligne

 

#6 Thu 14 March 2019 12:37

GlaDal
Membre
Date d'inscription: 30 Aug 2013
Messages: 237

Re: QGIS 3: Expression régulière pour séparer champ en plusieurs champs

Dominique : merci !
Ca marche.

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |