搜索按钮,不区分大小写,接受特殊字符

时间:2017-09-21 06:23:33

标签: c# regex winforms search richtextbox

我有一个搜索按钮"找到下一个"在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;
            }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

尝试转义搜索字词,使其不包含正则表达式使用的字符。

使用Regex.Escape方法执行此操作。

因此,您可以将代码更改为:

string escapedSearchTerm = Regex.Escape(SearchWord)
Regex reg = new Regex(escapedSearchTerm, RegexOptions.IgnoreCase);