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 Mon 07 June 2021 10:33

Mouha
Juste Inscrit !
Date d'inscription: 22 Apr 2021
Messages: 6

QGIS: extraction de chaines de caracteres dans un champ

Bonjour,

Je souhaite extraire des chaines de caractères dans une colonne.

Comme vous pouvez le voir sur l’exemple de la capture d'écran, sur une ligne je souhaite extraire « BPE-0881 » ou "001-PB36" pour le mettre sur une nouvelle colonne. Pareil aussi pour « 001-PB29 ».

J’ai vu ici un exemple un peu pareil, ou ils ont utilisé les Fonctions « substr », « right » ou « left ». J’ai essayé avec ces fonctions, mais vu que mes lignes n’ont pas la même longueur de chaine de caractère, j’ai obtenu quelques erreurs comme vous pouvez le voir sur les colonnes « Origine » et « Extremite » avec les quatre dernières lignes.

Ma question est de savoir s’il existe une fonction qui peut me permettre d’extraire uniquement les caractères dont j’ai besoin car travailler avec le nombre de caractères ne résout pas mon problème.

Merci à vous.


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

Hors ligne

 

#2 Mon 07 June 2021 12:02

Benoit D
Participant actif
Date d'inscription: 17 Jul 2018
Messages: 135

Re: QGIS: extraction de chaines de caracteres dans un champ

Utilisez une expression régulière avec regexp_substr()

Pour mettre au point votre pattern, vous pouvez utiliser des services en ligne comme https://regex101.com/ Attention dans QGis il faut doubler les caractères \ des patterns.

Votre pattern dans QGis pourrait-être 'BPE-\\d{4}' pour la première (cherche la chaîne "BPE-" suivie de 4 chiffres) et '\\d{3}-PB\\d{2}' pour la deuxième ( cherche 3 chiffres suivis de "-PB" suivi de 2 chiffres) mais cela dépend de la construction de vos identifiants. C'est à ajuster avec votre situation.
Vous pouvez capter les 2 à la fois avec l'utilisation des parenthèses.

Dernière modification par Benoit D (Mon 07 June 2021 12:04)

Hors ligne

 

Pied de page des forums

Powered by FluxBB