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 20/06/2006, à 16:20

Anne

Quelques exemples?[regexp]

Bonjour,

j'ai par exemple un fichier contenant ces phrases :

toto est dans le parc
le printemps
le bonheur est dans le pre

Pourriez-vous s'il vous plait m'écrire des exemples d'expressions régulières (format PERL) qui donneront des résultats en ayant ce fichier

Merci

#2 Le 20/06/2006, à 17:30

Black_pignouf

Re : Quelques exemples?[regexp]

Salut!

Le mieux reste de faire joujou avec et de glaner sur le web les informations sur grep, sed, regexp.

J'essaie de faire des exemples en Ruby et je reviens

Hors ligne

#3 Le 20/06/2006, à 17:45

Black_pignouf

Re : Quelques exemples?[regexp]

Voilà pour le script (les expressions sont à la fin entre les //):

class String
    def montrerRegExp(re)
        if self=~re then
            return "#{$`}<<#{$&}>>#{$'.montrerRegExp(re)}"
        else
            return self
        end
    end
end


chaine='toto est dans le parc
le printemps
le bonheur est dans le pre
mais pas dans la ville'


puts chaine.montrerRegExp(/a/)+"\n"*2
puts chaine.montrerRegExp(/a|e/)+"\n"*2
puts chaine.montrerRegExp(/a[^aeoui]/)+"\n"*2
puts chaine.montrerRegExp(/a./)+"\n"*2
puts chaine.montrerRegExp(/\s/)+"\n"*2
puts chaine.montrerRegExp(/../)+"\n"*2
puts chaine.montrerRegExp(/\w\w/)+"\n"*2
puts chaine.montrerRegExp(/[aeoiuy]/)+"\n"*2
puts chaine.montrerRegExp(/[^aeoiuy]/)+"\n"*2
puts chaine.montrerRegExp(/.....$/)+"\n"*2
puts chaine.montrerRegExp(/(.)\1/)+"\n"*2

Et voilà pour les résultats:

toto est d<<a>>ns le p<<a>>rc
le printemps
le bonheur est d<<a>>ns le pre
m<<a>>is p<<a>>s d<<a>>ns l<<a>> ville

toto <<e>>st d<<a>>ns l<<e>> p<<a>>rc
l<<e>> print<<e>>mps
l<<e>> bonh<<e>>ur <<e>>st d<<a>>ns l<<e>> pr<<e>>
m<<a>>is p<<a>>s d<<a>>ns l<<a>> vill<<e>>

toto est d<<an>>s le p<<ar>>c
le printemps
le bonheur est d<<an>>s le pre
mais p<<as>> d<<an>>s l<<a >>ville

toto est d<<an>>s le p<<ar>>c
le printemps
le bonheur est d<<an>>s le pre
m<<ai>>s p<<as>> d<<an>>s l<<a >>ville

toto<< >>est<< >>dans<< >>le<< >>parc<<
>>le<< >>printemps<<
>>le<< >>bonheur<< >>est<< >>dans<< >>le<< >>pre<<
>>mais<< >>pas<< >>dans<< >>la<< >>ville

<<to>><<to>><< e>><<st>><< d>><<an>><<s >><<le>><< p>><<ar>>c
<<le>><< p>><<ri>><<nt>><<em>><<ps>>
<<le>><< b>><<on>><<he>><<ur>><< e>><<st>><< d>><<an>><<s >><<le>><< p>><<re>>
<<ma>><<is>><< p>><<as>><< d>><<an>><<s >><<la>><< v>><<il>><<le>>

<<to>><<to>> <<es>>t <<da>><<ns>> <<le>> <<pa>><<rc>>
<<le>> <<pr>><<in>><<te>><<mp>>s
<<le>> <<bo>><<nh>><<eu>>r <<es>>t <<da>><<ns>> <<le>> <<pr>>e
<<ma>><<is>> <<pa>>s <<da>><<ns>> <<la>> <<vi>><<ll>>e

t<<o>>t<<o>> <<e>>st d<<a>>ns l<<e>> p<<a>>rc
l<<e>> pr<<i>>nt<<e>>mps
l<<e>> b<<o>>nh<<e>><<u>>r <<e>>st d<<a>>ns l<<e>> pr<<e>>
m<<a>><<i>>s p<<a>>s d<<a>>ns l<<a>> v<<i>>ll<<e>>

<<t>>o<<t>>o<< >>e<<s>><<t>><< >><<d>>a<<n>><<s>><< >><<l>>e<< >><<p>>a<<r>><<c>><<
>><<l>>e<< >><<p>><<r>>i<<n>><<t>>e<<m>><<p>><<s>><<
>><<l>>e<< >><<b>>o<<n>><<h>>eu<<r>><< >>e<<s>><<t>><< >><<d>>a<<n>><<s>><< >><<l>>e<< >><<p>><<r>>e<<
>><<m>>ai<<s>><< >><<p>>a<<s>><< >><<d>>a<<n>><<s>><< >><<l>>a<< >><<v>>i<<l>><<l>>e

toto est dans le<< parc>>
le prin<<temps>>
le bonheur est dans l<<e pre>>
mais pas dans la <<ville>>

toto est dans le parc
le printemps
le bonheur est dans le pre
mais pas dans la vi<<ll>>e

À toi de faire joujou maintenant et de comprendre le pourquoi du comment!

Hors ligne

#4 Le 20/06/2006, à 18:21

Anne

Re : Quelques exemples?[regexp]

Dans les exemples que tu as mis, aucun ne cherche de mots dans sa totalité.
Tu cherches uniquemet des lettres appartenant à un mot dans le fichier.
Comment faire par exemple pour chercher tous les mots commençant par p,
commençant par e et finissant par un n...

#5 Le 20/06/2006, à 19:22

Black_pignouf

Re : Quelques exemples?[regexp]

Resalut!

Tout "simplement": /\bp\w*e\w*s\b/

\b= Début de mot,
p=puis un p,
\w*=puis zéro ou plusieurs lettres
e=puis e,
\w*=puis zéro ou plusieurs lettres
s=puis s,
\b=enfin, la fin d'un mot.

puts chaine.montrerRegExp(/\bp\w*e\w*s\b/)+"\n"*2

toto est dans le parc
le <<printemps>>
le bonheur est dans le pre
mais pas dans la ville

Modif: je suppose que tu voulais dire "contenant e"
Et j'ai modifié le n final en s pour que printemps corresponde

Dernière modification par Black_pignouf (Le 20/06/2006, à 19:23)

Hors ligne

#6 Le 20/06/2006, à 20:18

Anne

Re : Quelques exemples?[regexp]

Merci beaucoup pour ton aide wink

#7 Le 21/06/2006, à 03:55

Black_pignouf

Re : Quelques exemples?[regexp]

De rien.... et l'expression trouvant tous les mots commençant par une consonne et finissant par une voyelle?

Hors ligne