Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/07/2008, à 17:44

Dark-Sham

[Résolu] "Quantifieurs" dans une Regex POSIX ?

Bonjour ! smile

J'aimerais savoir comment on quantifie une expression en POSIX ?

Je m'explique : en Perl, quand on écrit [0-9]{2,4}, ça veut dire "un chiffre présent de 2 à 4 fois".
J'ai cherché comment faire cela dans les Regex POSIX, en vain.

Pouvez-vous m'éclairer ? Merci smile

Dernière modification par Dark-Sham (Le 09/07/2008, à 17:20)


Script de sauvegarde/restauration APT

Ubuntu 8.04 "Hardy Heron"
CPU : AMD Athlon XP 2800+ ; GPU : ATI Radeon 9250/9200 Series ; RAM : 2 Gigots + 512 Mégots ; Carte mère : Asus A7N8X-E Deluxe

Hors ligne

#2 Le 08/07/2008, à 20:13

Totor

Re : [Résolu] "Quantifieurs" dans une Regex POSIX ?

ça semble être la même chose pourtant :
http://en.wikipedia.org/wiki/Regular_expression#POSIX

EDIT : sauf qu'il faut échaper les [, ( et { entre autres wink

Dernière modification par Totor (Le 08/07/2008, à 20:14)


-- Lucid Lynx --

Hors ligne

#3 Le 08/07/2008, à 23:35

Dark-Sham

Re : [Résolu] "Quantifieurs" dans une Regex POSIX ?

Merci, j'ai testé mais :

$ ls
22359
$ ls [0-9]\{1,5\}
ls: ne peut accéder [0-9]{1,5}: Aucun fichier ou dossier de ce type
$ ls [0-9]*
22359

Quelqu'un peut me dire ce qui ne va pas ? hmm


Script de sauvegarde/restauration APT

Ubuntu 8.04 "Hardy Heron"
CPU : AMD Athlon XP 2800+ ; GPU : ATI Radeon 9250/9200 Series ; RAM : 2 Gigots + 512 Mégots ; Carte mère : Asus A7N8X-E Deluxe

Hors ligne

#4 Le 09/07/2008, à 07:13

aleph

Re : [Résolu] "Quantifieurs" dans une Regex POSIX ?

http://spinecho.ze.cx/ -> regulex

#5 Le 09/07/2008, à 08:07

Alain.g

Re : [Résolu] "Quantifieurs" dans une Regex POSIX ?

Bonjour

Ce qu'on appelle globbing (remplacement, expansion de noms de fichiers) n'utilise pas les expressions rationnelles. Les métacaractères tels que * ou ? ont notamment une signification complètement différente que dans les ER :ce sont des "jokers" et non des quantificateurs.

Il est toutefois possible d'utiliser certains quantificateurs (option extglob activée)

?(liste-motif)
    Correspond à zéro ou une occurrence des motifs indiqués 
*(liste-motif)
    Correspond à zéro ou plusieurs occurrences des motifs indiqués 
+(liste-motif)
    Correspond à une ou plusieurs occurrences des motifs indiqués 
@(liste-motif)
    Correspond à une occurrence exactement des motifs indiqués 
!(liste-motif)
    Correspond à tout sauf les motifs indiqués

Si par exemple un dossier ne contient de 2 fichiers, "55" et "5a", ls [0-9]* renverra les deux noms tandis que ls *([0-9]) uniquement 55

Pour utiliser des ER, il faudrait combiner avec grep ou utiliser find par exemple.

Dernière modification par Alain.g (Le 09/07/2008, à 08:10)


Xubuntu Karmic !

Hors ligne

#6 Le 09/07/2008, à 11:11

Dark-Sham

Re : [Résolu] "Quantifieurs" dans une Regex POSIX ?

Ah merci Alain.g, c'est plus clair maintenant smile

J'ai donc essayé la Regex dans le grep :

$ ls -1 | grep ([0-9])\{1,5\}
bash: erreur de syntaxe près du jeton `[0-9]' inattendu
$ ls -1 | grep ([0-9]\{1,5\})
bash: erreur de syntaxe près du jeton `[0-9]\{1,5\}' inattendu
$ ls +([0-9])|grep [0-9]\{1,5\}
$ ls +([0-9])
22359

Et là je vous avoue que j'suis un peu perdu... Qu'est-ce qui ne va pas dans ce que j'ai écrit ?


Script de sauvegarde/restauration APT

Ubuntu 8.04 "Hardy Heron"
CPU : AMD Athlon XP 2800+ ; GPU : ATI Radeon 9250/9200 Series ; RAM : 2 Gigots + 512 Mégots ; Carte mère : Asus A7N8X-E Deluxe

Hors ligne

#7 Le 09/07/2008, à 11:26

Saito

Re : [Résolu] "Quantifieurs" dans une Regex POSIX ?

Bonjour,

tu dois empêcher le shell de développer les crochets qui sont spéciaux avec des simples quotes :

ls | grep '[0-9]\{1,5\}'

Aku-Soku-Zan_Shinsengumi

Hors ligne

#8 Le 09/07/2008, à 17:20

Dark-Sham

Re : [Résolu] "Quantifieurs" dans une Regex POSIX ?

Ah oui exact ça marche, merci beaucoup smile


Script de sauvegarde/restauration APT

Ubuntu 8.04 "Hardy Heron"
CPU : AMD Athlon XP 2800+ ; GPU : ATI Radeon 9250/9200 Series ; RAM : 2 Gigots + 512 Mégots ; Carte mère : Asus A7N8X-E Deluxe

Hors ligne