Bonjour à tous,
J'ai dans une table, une colonne qui contient des chaines de caractère du type :
Plus plein d'autres lignes qui ne respectent aucun pattern.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 "Script [toto] " (avec des espaces à la fin, me demandez pas pourquoi...) "Script [toto] : titi " "Script [toto] : tutu " "Script [titi] " "Script [titi] : titi " "Script [titi] : tutu " "Script [titi_toto] "
Je souhaite ne récupérer que les lignes du type "Script [toto] ", "Script [titi_toto] " et "Script [titi] " . C'est à dire celle ou il n'y a que des espaces après le "]".
Le LIKE ne permets pas de faire une expression régulière, je me suis donc tourné vers REGEXP_LIKE.
Pour le moment, j'en suis à :
Sauf que cela renvoie toutes les lignes au dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM matable t WHERE REGEXP_LIKE(t.monChamp, '^Script \[[[:alnum:],[:graph:]]*\][:spaces:]*');
Je souhaite donc rajouter le caractère de fin de ligne dans mon expression régulière, mais lorsque j’exécute la requête suivante:
Mais cela filtre toutes les lignes et plus rien ne passe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM matable t WHERE REGEXP_LIKE(t.monChamp, '^Script \[[[:alnum:],[:graph:]]*\][:spaces:]*$');
Je sèche là... si quelqu’un sait où est la lumière, je lui en serais fort reconnaissant!








Répondre avec citation


Partager