#1 Le 08/07/2008, à 17:44
- Dark-Sham
[Résolu] "Quantifieurs" dans une Regex POSIX ?
Bonjour !
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
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
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 ?
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
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
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