Bonjour à tous,
dans le cadre de la réalisation d'un moteur de recherche, j'essaye de développer un script php qui me permettrait de récupèrer le mot recherché et ceux qui l'entoure afin d'avoir un petit aperçu du contexte dans lequel le mot est employé.
J'ai donc pensé aux expressions rationnelles. Totalement débutant dans ce domaine, j'ai lu pas mal de tuto et pour l'instant j'en suis qu'a l'élaboration du masque. Je suis arrivé a développer un truc qui fonctionne plus ou moins bien.
J'aimerais avoir vos avis, savoir comment l'améliorer ou le corriger.
Je vais décortiquer le code et exposer ce que j'attends de chaque parties.
Le but est de pouvoir sélectionner une portion de phrase contenant le mot recherché, "for" dans l'exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part #(\w+?|\s|\S){0,6}?(for?)(\w+?|\s|\S){0,10}#i
Cette portion est sensée récupérer les mots, espace ou sans espace, s'ils existent avant le mot recherché avec pour quantité de 0 à 6.
Code : Sélectionner tout - Visualiser dans une fenêtre à part (\w+?|\s|\S){0,6}?
Problème, la quantification ne fonctionne pas au dela de 6.
Tous mots composé du mot recherché "for"
Code : Sélectionner tout - Visualiser dans une fenêtre à part (for?)
Tous mots, espace, sans espace après le mot recherché avec quantité maximum 10.
Code : Sélectionner tout - Visualiser dans une fenêtre à part (\w+?|\s|\S){0,10}
Probleme au dessu de 10, certaines occurences du mot recherché ne sont plus sélectionnées.De même l'ajout d'une condition ? ne selectionne plus rien.
casse insensible
Pouvez vous me donner un coup de main ?? car la je galère un peu
J'ai une solution alternative a base de substr, strpos et autre, mais j'aimerais vraiment voir si il est possible de faire ça en regex.
Merci d'avance !!!!!
Partager