#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.
Hors ligne
#2 Mon 07 June 2021 12:02
- Benoit D
- Participant assidu
- Date d'inscription: 17 Jul 2018
- Messages: 150
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