Expressions régulières

Résolu
thristam Messages postés 23 Date d'inscription mercredi 16 juillet 2003 Statut Membre Dernière intervention 28 mars 2013 - 24 oct. 2011 à 21:00
thristam Messages postés 23 Date d'inscription mercredi 16 juillet 2003 Statut Membre Dernière intervention 28 mars 2013 - 10 nov. 2011 à 21:50
Bonjour,

Je cherche à ce que :
m1 "fini"; m2 "dit"; m3 = "dit"; m4 ="";

m1 = new Regex(@"(\w+(it|i)$)( \w*)?").Match("fini").Groups[1].Value;
m2 = new Regex(@"(\w+(it|i)$)( \w*)?").Match("dit que").Groups[1].Value;
m3 = new Regex(@"(\w+(it|i)$)( \w*)?").Match("dit").Groups[1].Value;
m4 = new Regex(@"(\w+(it|i)$)( \w*)?").Match("bien").Groups[1].Value;

Mais donne ... :
m1 "fini"; m2 ""; m3 = "dit"; m4 ="";

Et avec l'opérateur lazy ( $? ) :

m1 "fini"; m2 "dit"; m3 = "dit"; m4 ="bi";

C'est vraiment très important, je n'arrete pas de tourner en rond...
Peut-etre qu'il y a une solution avec un autre langage, automate ou autre.

Un grand merci à celui qui trouvera la réponse ( :P... )

5 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
27 oct. 2011 à 18:27
Bonjour

j'ai mis ce code dans une form ou j'ai une ListBox2

        private void button1_Click(object sender, EventArgs e)
        {
            listBox2.Items.Add(MaRequette("fini"));
            listBox2.Items.Add(MaRequette("dit"));
            listBox2.Items.Add(MaRequette("dit que"));
            listBox2.Items.Add(MaRequette("bien"));
            listBox2.Items.Add(MaRequette("bien fini"));
        }

        private string MaRequette(string value)
        {
            return new Regex(@"(\w+(it|i))( |$)").Match(value).Value;
        }


et ma liste affiche
fini
dit
dit

fini

Bon maintenant, il y a des mots qui se terminent par i et qui n'ont rien de verbes: moi, toi lui etc...

Whismeril
3
thristam Messages postés 23 Date d'inscription mercredi 16 juillet 2003 Statut Membre Dernière intervention 28 mars 2013
10 nov. 2011 à 21:50
Merci pour ta répone. J'avais trouvé une autre solution : @"\b(\w+(it|i))\b".

Après pour indentifier les verbes, ceux sont les mots précédés par un pronom personnel, auxillaire, pronom réfléchi donc ça va.
3
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
24 oct. 2011 à 21:09
Bonsoir,

il y a cette source, qui permet de tester ses Regex.

Sinon pour t'aider avec le texte d'origine se serait plus simple.


Whismeril
0
thristam Messages postés 23 Date d'inscription mercredi 16 juillet 2003 Statut Membre Dernière intervention 28 mars 2013
25 oct. 2011 à 19:54
Cette source est bien pour tester les regex sans compiler mais je préfère tester ma regex directement dans visual studio.

Je comprends qu'en utilisant ce programme c'est mieux d'utiliser des pharses mais pour mon problème cela ne fait qu'alourdir la regex.

Pour t'éclairer un peu, je cherche à identifier les verbes. Par exemple dans les phrases "je suis allé au marché" et "aujourd'hui, je suis bien", cette regex suffirait : "je suis (\w+é)". Bien sur, il y a plein d'autres phrases avec des verbes à identifier c'est pourquoi j'ai fait un échantillon de 4 lignes.

PS : J'ai oublié de dire que pour les 4 lignes, il faut que la regex soit identique.

Voilà, je crois que ce que je demande va etre trop commpliqué :-) ....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
27 oct. 2011 à 10:57
Bonjour,
il y a aussi cet addin pour tester les regex directement dasn VS2010


louis
0
Rejoignez-nous