Bonjour,
Est-il possible de rendre optionnel une chaine de caractère ?
Je n'ai pas trouvé comment même en m'inspirant de
http://www.psoug.org/reference/regexp.html
Soit les chaines suivantes
TO8 LT34
45(TO8_LT34)
(TO8-LT34)
TO8LT34-C
45(TO8LT34)-I
(TO8_LT34)-S
TO8-LT34(25)
45(TO8LT34)(25)-S
(TO8 LT34)(25)-I
je veux récuperer les deux valeurs 8 et 34 qui peuvent etre toutes deux une chaine digit de longueur variable.
ne marche pas car [-C]?[-I]?[-S]? n'est pas bon, en fait il me faudrait qqchose comme ça mais oracle n'aime pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part Select REGEXP_REPLACE (monchamp,'^[[:digit:]]*[(]?TO([[:digit:]]+)[_- ]?LT([[:digit:]]+[)]?)[(]?[[:digit:]]*[)]?[-C]?[-I]?[-S]?$','\2-\3') from matable;
en utilisant le ? pour facultatif et le | pour soit chaine A soit chaine B soit chaine C soit aucune. Est-ce possible ?[(-C)|(-I)|(-S)]?
Enfin, Je suis preneur de toute optimisation pour mon expression ...
Merci
Partager