À l'aide de postgres regexp_replace pour remplacer une liste de chaînes par toujours la même chaîne
Salut, je voudrais utiliser regexp_replace (ou tout autre postgres fonction si raisonnable) pour remplacer des caractères dans une chaîne de caractères en un ", c'est à dire effacer.
À l'aide de regexp_replace(('def4abcdef4ab','4', ",'g') je peux remplacer/supprimer toutes les occurrences de "4", mais je veux aussi de remplacer toutes les occurences de 'e' et b' dans le même processus, sans l'aide de plusieurs processus imbriqués comme regexp_replace(regexp_replace(regexp_replace())).
c'est à dire je veux être en mesure de fournir une courte liste des différentes chaînes qui devraient ensuite être remplacer par une chaîne unique.
Des idées? Merci beaucoup à l'avance!
Vous devez vous connecter pour publier un commentaire.
La manière canonique est d'utiliser les classes de personnage, comme si,
si @alexis méthode peut également gérer les chaînes.
Pas sûr si peut-être non-goulument la quantification de l'expression de la rendre plus efficace, par exemple
[4eb]+?
.Vous n'avez pas besoin d'expressions régulières pour le caractère unique de rechange Utiliser la fonction de traduction, c'est à dire
Si vos cordes sont de plusieurs caractères, puis l'utilisation de replace(). Même imbriquée, ce ne serait sans doute de meilleures performances que les expressions régulières.
regexp_replace('def4abcdef4ab','4|e|b', '','g')
ok trouvé la réponse moi-même (aidé par PostgreSQL divers nettoyage de chaîne \ varchar):