Recherche d'un mot dans une phrase wordexists

0/5 (7 avis)

Snippet vu 20 353 fois - Téléchargée 28 fois

Contenu du snippet

rechercher un mot dans une phrase,
s'il existe retourne vrai
Remarque: supporte "*"

Source / Exemple :


Public Function WordExists(ByVal Word As String, ByVal Phrase As String) As Boolean
        Dim i, j As Integer
        Dim SSplit() As String

        WordExists = True
        Word.Trim()
        SSplit = Word.Split("*")  ' Supports wildcards
        Dim FragmentExist(SSplit.Length) As Boolean
        For i = 0 To SSplit.Length - 1
            FragmentExist(i) = phrase.Contains(SSplit(i))
            j = phrase.IndexOf(SSplit(i)) + SSplit(i).Length
            If j > phrase.Length Then j = phrase.Length - 1
            If FragmentExist(i) Then phrase = phrase.Substring(j)
            WordExists = WordExists And FragmentExist(i)
        Next
    End Function

Conclusion :


J'espère que ce code aiderait,
j'attends une amélioration et vos commentaires

A voir également

Ajouter un commentaire Commentaires
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 nov. 2006 à 02:34
salut,
c'est du .Net non? (Flag à cocher)

et....
WordExists = (InStrB(1, Phrase, Word) > 0)
çà suffit pas?

le but d'une fonction (ici surtout) serait plus d'être appelée pour autant de mots désirés que de séparer elle-même un groupe de mots inutilement non?!

voir www.Codyx.Org pour ce genre de bout de code (s'il est valable, j'attends l'avis un dev DotNet...)
++
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
19 nov. 2006 à 10:19
il y a beaucoup de méthode pour rechercher un mot dans un texte. La tienne remplie son boulot, mais peut-etre largement simplifier comme ci-dessous. Pour un dépot sur codyx voir d'abord si une méthode similaire cela n'existe pas déjà.

Public Function WordExists2(ByVal word As String, ByVal phrase As String) As Boolean

If phrase.IndexOf(word) <> -1 Then
Return True
Else
Return False
End If

End Function
cs_Kite37 Messages postés 242 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 17 janvier 2018
19 nov. 2006 à 11:18
ou il y a aussi une autre manière plutot sympa mais compliquée : l'utilisation de la classe regex ;)
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
19 nov. 2006 à 17:00
Plus compliquée je ne crois pas....

Function WordExists(ByVal word As String, ByVal phrase As String) As Boolean

Return Text.RegularExpressions.Regex.IsMatch(phrase, word, Text.RegularExpressions.RegexOptions.IgnoreCase)

End Function
riadhh05 Messages postés 17 Date d'inscription jeudi 22 juin 2006 Statut Membre Dernière intervention 16 juin 2008
20 nov. 2006 à 12:38
Salut,
Merci pour les commentaires, mais je penses que WordExists2 ne permet pas d'utiliser des fragments de mots.
Par contre pour rechercher plusieurs mots dans une phrase d'utiliser la fonction WordExists(ByVal Word As String, ByVal Phrase As String)en séparant chaque mot par "*"
example: mots à chercher ="Bonjour tout le monde"
Replace(mots à chercher , " ", "*")
puis appeler la fonction wordexist(mots à chercher , phrase)
le résultat est exclusif, tous les mots doivent exister en même temps.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.