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
17337
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
596
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
17337
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
596
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