Sélection d'un ou plusieurs mots après un mot précis

tigerman Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,
Voila, je suis en train de faire un programme, qui, fait a peu près comme "jarvis" dans iron man (pour l'instant je travaille à l'écris avec la console), bon bien sur c'est impossible, mais je vais vous expliquer...
je travaille sur la partie du logiciel, qui, si certaine condition sont vérifié, me lance une recherche sur google actualités dans les moins de 24 heures....
Le problème c'est que la, si les conditions sont vérifiés, le programme va ensuite me demander quels sont les termes de ma recherche, et ensuite va faire la recherche...

exemple:
moi: Quel sont les nouveautés ?
le logiciel: Sur quelles nouveautés voulez vous effectuer votre recherche ?
moi: les lunettes
le logiciel: lances google actualités avec comme élément de recherche "les lunettes"

Moi, j'aimerais directement dire: Quel sont les nouveautés concernant les lunettes ?
en gros, que ca marche comme ca:
if(il y a le mot "pour" ou "concernant" ou "sur")
alors le logiciel enregistre tous les mots apres....

je précise que j'utilise des char, et que pour l'instant, pour vérifier si certain mot sont dans mon char, j'utilise "strstr"

Avez vous une solution pour ca ?

Merci d'avance

A voir également:

10 réponses

Utilisateur anonyme
 
SALUT !

Bon en premier lieu, question c**, pourquoi ne travail-tu pas en c# ? tu as l'air de faire une apps pour Windows, et vu la tienne je dirai 8. Enfin je pense juste que ça serai beaucoup plus simple mais après c'est un choix ^^

sinon pour ce que tu cherche je te conseil de voir du côté des expression régulières (tu as un site pas mal pour t'aider : https://myregextester.com/).
Ça te permettra de facilement vérifier l'existence de mots clefs dans une chaîne et donc de profiler la demande utilisateur plus facilement.

De même je pense que tu fais un simple traitement du texte des pages web et donc l'utilisation des expression régulières te sera là aussi intéressante.
0
tigerman Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   5
 
Merci mais je vais rester an C++
Et aussi merci pour les expressions régulière, cela me servira surement...
Mais je n'ai toujours pas trouvé comment comment sélectionner un mot après un mot "précis"
0
Utilisateur anonyme
 
avec l'expression régulière justement.
par exemple, tu as :
clef voulu du reste qui sert a rien

ton mot clef est "clef", et tu souhaite le mot qu'il y a ensuite, soit ici "voulu". Tu vas donc "indiquer" à ton expression régulière que tu souhaite récupérer les caractère qui viennent après "voulu " (espace dans ce cas ci vu que dans une phrase chaque mot est séparé par un espace) jusqu'à l'espace suivant.
soit :
clef (.*?) 

avec un espace après clef et un après la fermeture de parenthèse
0
tigerman Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   5
 
D'accord merci je vais regarder ça ;)
0

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

Posez votre question
tigerman Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   5
 
Donc merci de ta réponse, mais ca ne fonctionne pas, voila, j'ai créé une char du nom de "motClef" mais quand j'écrit ceci: const char *motCle = sur (.*?) ;
ça ne fonctionne pas... ( expected primary-expression before '.*' token
J'ai aussi essayé avec un string: string motClef('sur (.*?) ;);
Mais rien...
0
Utilisateur anonyme
 
je ne vois pas ce que tu as essayé de faire. Regarde ici :
https://nicolasj.developpez.com/articles/regex/

la partie
IV-B. Extraire une sous chaîne correspondant à un motif

histoire de voir le fonctionnement
0
tigerman Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   5
 
Merci, j'ai cherché, mais, mais je ne vois pas comment je pourrait faire...
Pour t'expliquer pourquoi j'ai fait ça, je vais te dire comment fonctionne pour l'instant un morceau du programme:
if(strstr phraseUtilisateur, "Est ce que" ou "quels sont" ou "y a t'il") //phraseUtilisateur = demande avant ce code
{
if(strstr phraseUtilisateur, "nouveautés" ou "actualitées" ou "nouvelles")
{
cout << "Sur quoi voulez vous effectuer votre recherche ? " << endl;
string motClef;
cin >> "motClef" >> endl;
const char url1 = "debut lien google actu";
const char url2 = "fin lien google actu";
const char url = (url1 + motClef + url2);
shellexecute (url);
}
}

Bon, la le code ne marcherais pas, mais en gros je fais comme ça

Voila pourquoi je veux que cela soir un char ou un string, comme ça je l'intègre dans le lien et je l'exécute avec shellexecute...
Et c'est pour ça que je ne voit pas comment faire avec ce que tu m'as donné avec ce que j'ai fais...
0
Utilisateur anonyme
 
ouai mais tu ne prends pas le problème dans le bon sens :

l'utilisateur saisie une chaine (que tu conserve dans un string ... on va prendre le string car il sera plus simple à manipuler).
tu applique une expression régulière sur cette chaine afin de récupérer des mots clefs dans un tableau de string par exemple (dans un premier temps, extrait 1 mot à la fois dans une autre chaine que celle source)
et en fonction tu mot clef extrait, tu traite.
0
tigerman Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   5
 
Merci, ça marche !
Bon, il me reste un problème, mais je vais poster un autre sujet ;)
0
Utilisateur anonyme
 
ok cool ^^ bne soirée !
0