Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 03/06/2010 10:20:46
- mich30
- Membre
expressions regullieres
Bonjour je veux tester un champ il faut qu'il soit imerativement
de la forme genre 12345A1234 ou 12345AA1234
avec
NNNNNCNNNN
ou
NNNNCCNNNN
N= que numerique
C= que caractere
comment fait t'on avec des expressions regullieres avec requete ou autre facon de faire
merci
Hors ligne
#2 03/06/2010 11:38:15
- mich30
- Membre
Re : expressions regullieres
j'ai trouve cetet expression \d{5}[A-Z]\d{4}
avec expresso 3.0
maintenant il faut que je le mette en requete
Hors ligne
#3 03/06/2010 11:52:12
- mich30
- Membre
Re : expressions regullieres
j'ai mis ca
SELECT regexp_matches(id_parc, '\d{5}[A-Z][A-Z]\d{4}' ) from pci.dep13_parcelle_pci ;
mais ca marche pas
Hors ligne
#4 03/06/2010 11:53:28
- flo
- Membre
Re : expressions regullieres
Salut,
Faut que tu regardes dans la doc, ici :
http://docs.postgresqlfr.org/8.4/functi … ching.html
au paragraphe "expressions rationnelles POSIX".
Je pense que c'est ce que tu cherches.
Hors ligne
#5 03/06/2010 12:07:20
- flo
- Membre
Re : expressions regullieres
Tu veux faire quoi exactement? Sélectionner les lignes d'une table matchant l'expression?
En supposant que c'est cela, il faut utiliser les opérateurs.
Par exemple :
select * from teste where data ~ 'tr.*';
te renvoie toutes les lignes telles que la colonne "data" contient 'tr'.
Tu pourras adapter toi-même en choisissant le bon opérateur si c'est autre chose que tu cherches (lignes ne respectant pas le motif, non-prise en compte de la casse.) C'est dans la doc.
Si cela ne répond pas à ta question, merci de préciser.
Hors ligne
#6 03/06/2010 14:24:16
- mich30
- Membre
Re : expressions regullieres
ok mais j'ai
select * from pci.dep13_parcelle_pci where id_parc ~ '(\d{5}[A-Z]{1,2}\d{4}' ;
ATTENTION: utilisation non standard d'un échappement dans une chaîne littérale
LINE 2: ... * from pci.dep13_parcelle_pci where id_parc ~ '(\d{5}[A-...
^
HINT: Utilisez la syntaxe de la chaîne d'échappement pour les échappements,
c'est-à-dire E'\r\n'.
merci
Hors ligne
#7 03/06/2010 16:30:33
- flo
- Membre
Re : expressions regullieres
Et comme ceci :
select * from pci.dep13_parcelle_pci where id_parc ~ E'\\d{5}[A-Z]{1,2}\\d{4}' ;
?
Dernière modification par flo (03/06/2010 16:32:55)
Hors ligne
#8 04/06/2010 17:13:22
- mich30
- Membre
Re : expressions regullieres
voila la reponse
select count(*) from pci.dep1 where (id_pa) !~ '([A-Z]{1,2}[0-9]{4})'
avec
CNNNN
ou
CCNNNN
Hors ligne
Pages : 1