Comment trouver du texte répété dans un RichTextBox? J'ai besoin de changer la couleur aussi.Comment trouver du texte répété dans un RichTextBox?
Répondre
Pour trouver mots répétés vous pouvez diviser le texte par des espaces, le classer par ordre alphabétique et rechercher des instances répétées en effectuant une boucle sinle à travers le tableau de mots.
Les phrases répétées sont plus difficiles à détecter car vous devez essayer des combinaisons de mots, ce qui est très récurrent.
Veillez à utiliser une expression régulière pour supprimer plusieurs espaces. –
Je suggère de stocker ces mots avec l'index dans le texte pour un accès plus rapide – Scoregraphic
Pour correspondre les mots répétés dans une chaîne: (De http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.aspx)
using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
// Define a regular expression for repeated words.
Regex rx = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",
RegexOptions.Compiled | RegexOptions.IgnoreCase);
// Define a test string.
string text = "The the quick brown fox fox jumped over the lazy dog dog.";
// Find matches.
MatchCollection matches = rx.Matches(text);
// Report the number of matches found.
Console.WriteLine("{0} matches found in:\n {1}",
matches.Count,
text);
// Report on each match.
foreach (Match match in matches)
{
GroupCollection groups = match.Groups;
Console.WriteLine("'{0}' repeated at positions {1} and {2}",
groups["word"].Value,
groups[0].Index,
groups[1].Index);
}
}
}
Pour changer la couleur d'un segment de texte dans un RichTextBox:
RichTextBox rtb = new RichTextBox();
rtb.SelectionStart = 4;
rtb.SelectionLength = 7;
rtb.SelectionColor = Color.Red;
+1, Très belle réponse détaillée! –
correspond uniquement aux mots adjacents. ne trouvera pas le même mot dans toute la chaîne. –
Essayez ceci:
string value = "She sells sea shells by the sea shore";
Regex.Split(value, @"\W+").ToList()
.GroupBy(w => w)
.Where(w => w.Count() > 1)
.Select(w => w.Key).ToList()
.ForEach(w => Console.WriteLine("'{0}' repeats in the string", w));
- 1. Winforms RichTextBox Taille du texte?
- 2. Comment trouver un TextRange dans RichTextBox (entre deux TextPointers)
- 3. Jquery: Comment trouver du texte dans textarea
- 4. Remplacer le texte dans WPF Richtextbox
- 5. Coloriage sélectif de texte dans RichTextBox
- 6. Supprimer le texte de RichTextBox
- 7. Comment trouver la zone d'affichage d'un RichTextBox WPF?
- 8. comptage répété des éléments dans un tableau
- 9. Ecriture du contenu d'un RichTextBox dans un fichier
- 10. Comment modifier le format de lignes spécifiées dans un RichTextBox
- 11. Propriété de texte personnalisé WPT RichTextBox
- 12. WPF RichTextBox - Remplacer le texte sélectionné par un contrôle personnalisé
- 13. RichTextBox
- 14. Set texte RTF en WPF RichTextBox contrôle
- 15. Détermination du InlineUIContainer sélectionné dans un fichier WPF RichTextBox
- 16. Comment utiliser le contrôle RichTextBox?
- 17. Comment puis-je trouver tous les Guids dans un texte?
- 18. Comment trouver toutes les initialisations dans un texte?
- 19. WPF RichTextBox ne supprime pas le texte
- 20. Comment empêcher un RichTextBox d'actualiser son affichage?
- 21. Définir le curseur dans RichTextBox
- 22. Comment aligner du texte dans un élément de texte GnomeCanvas
- 23. Apparence RichTextBox
- 24. Comment trouver l'ID client du contrôle dans un GridView ASP.NET?
- 25. Comment puis-je trouver des éléments html qui contiennent du texte spécifique dans un commentaire html?
- 26. Comment faire pour faire défiler un RichTextBox vers le bas?
- 27. Meilleur Ajuster un document dans Richtextbox
- 28. Définir les propriétés des polices dans RichTextBox
- 29. WPF richTextBox question
- 30. Trouver et supprimer du texte dans Excel Worksheet avec C#
Comment définissez-vous le texte répété? Y a-t-il du texte répété dans ce commentaire, par exemple? –
La question n'est pas assez claire pour être bien répondu. – Odrade