Я делаю программу, которая должна просмотреть абзац текста и найти, сколько раз появляется определенное ключевое слово/ключевые слова. Он также должен выделять каждое из этих ключевых слов в тексте.Выделение ключевых слов в richtextbox в WPF
Мне удалось сделать его интерфейс, и теперь он может отслеживать, сколько раз слово появляется, но я действительно зациклился на том, как выделить, где появляются ключевые слова. Я выложу свой код ниже, любая помощь очень ценится в том, как искать и выделять текст внутри richtextbox. Поскольку это в WPF, явный richtextbox.find() не доступен для использования.
class TextAnalyser
{
public int FindNumberOfOccurances(List<string> keywords, string email)
{
int occurances = 0;
foreach (string keyword in keywords)
{
occurances += email.ToUpper().Split(new string[] { keyword.ToUpper() }, StringSplitOptions.None).Count() - 1;
}
return occurances;
}
public void TurnTextRed(List<string> keywords, string email, RichTextBox TextBox)
{
foreach(string keyword in keywords)
{
}
}
public List<string> ConvertTextToList(string text)
{
char[] splitChars = {};
string[] ArrayText = text.Split(splitChars, StringSplitOptions.RemoveEmptyEntries);
return ArrayText.ToList<string>();
}
public string GetStringFromTextBox(RichTextBox TextBox)
{
var textRange = new TextRange(
TextBox.Document.ContentStart,
TextBox.Document.ContentEnd
);
return textRange.Text;
}
}
И вот мое главное окно
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void AnalyseButton_Click(object sender, RoutedEventArgs e)
{
var textTool = new TextAnalyser();
var keyWords = textTool.ConvertTextToList(textTool.GetStringFromTextBox(WordTextBox).Trim());
var email = textTool.GetStringFromTextBox(EmailTextBox).Trim();
int usesOfWord = textTool.FindNumberOfOccurances(keyWords, email);
Occurances.Text = usesOfWord.ToString();
}
}
Большое спасибо приятелю, хороший ответ Ваш было много помощи – Needham
краткий вопрос, что именно делает рисунок сделать в этом – Needham
, как и его назначение, когда вы используете его в методе регулярного выражения – Needham