J'essaie de créer une méthode de filtrage Bad Word que je peux appeler avant chaque insertion et à la mise à jour pour vérifier la chaîne pour tout mauvais mot et remplacer par "[censuré]". p>
J'ai une table SQL avec une liste de mots méchants, je souhaite les ramener et les ajouter à une liste de liste ou de chaîne et vérifiez la chaîne de texte qui a été transmis et si des mots méchants sont trouvés. Remplacez-les et renvoyez une chaîne filtrée. P>
J'utilise c # pour cela. P>
4 Réponses :
Vous pouvez utiliser la méthode string.replace () ou la classe de regex p>
Bien que je sois un grand fan de regex, je pense que cela ne vous aidera pas ici. Vous devriez récupérer votre mauvais mot dans une liste de chaînes ou une matrice de chaîne et utilisez Peut-être mieux, utilisez dans l'échantillon, system.string.replace code> sur votre message entrant. system.string.split code > et .join code> méthodes: p> mayContainbadwords code> est la chaîne que vous souhaitez vérifier; Badwords CODE> est un tableau de chaînes, vous chargez de votre table SQL Bad Word et Cleanstring code> est votre résultat. P> P>
qui transformerait le badminton en [censuré] Mington
exactement! : D - Mais sérieusement, il s'agit simplement d'un échantillon, pas d'une solution ... Je ne vois aucune approbation à l'utilisation de Regex, ici.
et il tourne "mauvais" à "" mais pas "[censuré]"
S'il vous plaît voir cette "CLBUTIC" (ou pour votre cas Cl [censuré] IC) Article Avant de faire une chaîne Remplacer sans envisager les limites de mots:
évidemment pas infaillible (voir article ci-dessus - Cette approche est si facile de se déplacer ou de produire de faux positifs ...) ou optimisées (les expressions régulières doivent être mises en cache et compilées), mais ce qui suit filtrera des mots entiers (pas de "CLButtics") et de pluralités simples de mots: < / p> donne la sortie: p> Je n'ai pas eu de sommeil [censuré] pour [censuré] [censuré] jours - le voisin voisin joue de la musique classique à pleine inclinaison! p>
blockQuote> Notez que "Classique" ne devient pas "CL [censuré] ical", comme des mots entiers sont assortis avec l'expression régulière. p> et pour démontrer une saveur de la manière dont cela (et dans les techniques de base de base \ de la chaîne de base) peut être facilement subvertie, voir la chaîne suivante: P> "Je n'avais pas de Cranberryä ± ng sommeil pour chuffä ± Ng Days de chuffä ± ngs - Le voisin voisin joue de la musique classique à pleine inclinaison!" P>
blockQuote> J'ai remplacé le "I" avec des minuscules turcs Endottd "Ä ±". S'est toujours assez offensant! p> p>
Bon article de fond. Aurait probablement placé comme un commentaire plutôt qu'une réponse, car cela ne répond pas vraiment à la question.
@Robin je vais brûler en enfer, mais j'ai fourni un exemple.
+1, tandis que c'est un problème difficile / impossible de résoudre. (J'ai vu des arcades remplies du nom CLINT à cause de la police utilisée!) Je préférerais toujours voir un groupe de s [censuré] erreurs de Horpe qu'un navigateur pour enfants rempli d'obscénités.
@Robin L'approche ci-dessus donnerait "Scunthorpe" que je pense est plus appropriée. Les enfants sont naturellement curieux.
Il y a aussi un bel article qui peut être trouvé Avec une petite technique HTML-analyse, vous pouvez obtenir une grande liste avec des mots de jure de Noswear a> p>
Ce n'est probablement pas une bonne idée de mettre à jour / insérer les chaînes censurées sans tenir une copie de la chaîne non censurée. Vous devrez probablement adapter votre stratégie de réseau et de remplacement pour de nombreuses itérations jusqu'à ce qu'elle soit «assez droite» et ne devrait pas risquer de détruire vos données entre-temps.
Vous a donné un vote juste pour les appeler «mauvais mots».