我有一个搜索按钮"找到下一个"在RichTextBox
中搜索,唯一的问题是,当我搜索" [e]"然后它会标记任何" e"在RichTextBox
。如果我搜索" [",那么程序将崩溃。这是我的代码:
private void downBtn_Click(object sender, EventArgs e)
{
string SearchWord = textBox1.Text;
if (SearchWord.Length > 0)
{
if (SearchWord != prevWord)
{
index = 0;
prevWord = SearchWord;
}
Regex reg = new Regex(SearchWord, RegexOptions.IgnoreCase);
foreach (Match find in reg.Matches(richTextBox1.Text))
{
if (find.Index >= index)
{
richTextBox1.Select(find.Index, find.Length);
richTextBox1.Focus();
index = find.Index + find.Length;
break;
}
}
}
}
答案 0 :(得分:2)
尝试转义搜索字词,使其不包含正则表达式使用的字符。
使用Regex.Escape方法执行此操作。
因此,您可以将代码更改为:
string escapedSearchTerm = Regex.Escape(SearchWord)
Regex reg = new Regex(escapedSearchTerm, RegexOptions.IgnoreCase);