70 votes

Comment extraire un groupe d'une expression régulière dans Oracle ?

J'ai reçu cette requête et je souhaite extraire la valeur entre parenthèses.

 select de_desc, regexp_substr(de_desc, '\[(.+)\]', 1)
from DATABASE
where col_name like '[%]';

Il me donne cependant la valeur avec les crochets tels que "[TEST]". Je veux juste "TEST". Comment modifier la requête pour l'obtenir ?

25voto

ivanatpr Points 906

Vous devez effectuer un remplacement et utiliser un modèle d'expression régulière qui correspond à l'ensemble de la chaîne.

 select regexp_replace(de_desc, '.*\[(.+)\].*', '\1') from DATABASE;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X