14 Rechercher et remplacer
Pour remplacer spécifiquement des données dans un champ d’attribut, vous pouvez utiliser la fonction regexp_replace()
dans la Gestionnaire de champs de QGIS. Cette fonction permet de rechercher des modèles de texte dans un champ et de les remplacer par un nouveau texte. Les termes simples et les expressions régulières peuvent être utilisés pour effectuer des remplacements complexes.
Syntaxe :
regexp_replace("Feldname", 'Suchmuster', 'Ersatztext')
"Nom du champ"
: le champ d’attribut dans lequel le remplacement doit être effectué.Modèle de recherche'
: le terme ou le modèle de texte que vous souhaitez remplacer. Il peut s’agir d’un simple texte ou d’une expression régulière.'Texte de remplacement'
: le texte qui doit remplacer le terme ou le modèle trouvé.
Exemple :
Si vous souhaitez remplacer le terme Terme1
par Terme2
dans un champ d’attribut appelé « Nom du champ », l’expression est la suivante :
regexp_replace("Feldname", 'Begriff1', 'Begriff2')
Dans cet exemple, la fonction recherche les occurrences de Terme1
dans chaque enregistrement du champ « Nom du champ » et les remplace par Terme2
.
Exemple d’application :
Supposons que le champ d’attribut « Nom du champ » contienne une liste d’espèces d’arbres et que vous souhaitiez remplacer toutes les occurrences du terme « chêne » par « hêtre ». L’expression dans la calculatrice de champ ressemblerait alors à ceci :
regexp_replace("Feldname", 'Eiche', 'Buche')
Après l’exécution, toutes les entrées contenant le terme « chêne » seront automatiquement remplacées par « hêtre ».
Avantages de regexp_replace()
:
- Flexibilité: outre les termes simples, il est possible de définir des modèles de texte complexes à l’aide d’expressions régulières afin de capturer des modèles spécifiques ou récurrents.
- Précision: en utilisant des expressions régulières, vous pouvez vous assurer que seules les occurrences souhaitées sont remplacées.
- Automatisation: la fonction peut être appliquée simultanément à tous les enregistrements d’un champ d’attributs, ce qui rend les ajustements manuels inutiles.
Remarque :
Si vous souhaitez simplement remplacer des termes simples sans utiliser d’expressions régulières, vous pouvez également utiliser la fonction replace()
, qui est moins compliquée dans ce cas. L’expression se présenterait alors comme suit :
replace("Feldname", 'Begriff1', 'Begriff2')
Cependant, la fonction regexp_replace()
offre plus de possibilités, car elle reconnaît et modifie les motifs et les structures de texte complexes.