/ / Convertir une chaîne en utilisant une expression rationnelle - sql, regex

Convertir une chaîne en utilisant une expression rationnelle - sql, regex

Je le convertis à l’aide de la sous-chaîne et tout fonctionne bien, mais je dois en convertir une bonne partie et cela prendra du temps.

On m'a dit que le regex est beaucoup plus efficace et plus rapide.

Un conseil sur regex?

convertir chaîne1 en chaîne2 en utilisant regex

string1 = "96457fa012456c41bf9200011da2d8fa"

string2="96457fa012456c41bf92011da2d8fa"

Merci d'avance

Réponses:

1 pour la réponse № 1

Cela fonctionne dans Oracle - le remplacement de l'implémentation regex d'Oracle par SQL Server devrait être simple:

select regexp_replace(
"96457fa012456c41bf9200011da2d8fa",
"(..)",
"\1")
from dual

Explication:

  • nous voulons faire correspondre n'importe quelle paire de caractères => ".."
  • nous voulons "stocker" les caractères que nous venons de faire correspondre, donc les inclure dans un groupe de capture => "(..)"
  • dans notre chaîne de remplacement, nous voulons obtenir le contenu de notre groupe correspondant => "1"
  • et nous voulons ajouter une barre oblique inverse avant chaque groupe => "\ 1"
  • dual est juste une table factice dans Oracle