搜索字符串中的句子(C#)

时间:2009-06-05 15:27:11

标签: c# string

我的问题分为两部分:

1)如何在字符串中搜索句子(例如Dell Canada)(例如I am working in Dell Canada,我发现它......)。

2)第二部分是我的字符串是RichTextBox中的文本,所以我想找到所选句子的TextRange并应用某些装饰。

感谢。

4 个答案:

答案 0 :(得分:5)

给它一个旋转,它将它设置为粗体。您可以使用RichTextBox上的许多Selection ...属性,还要注意它是不区分大小写的搜索:

    string textToSearchFor = "Dell Canada";
    int index = richTextBox1.Text.IndexOf(textToSearchFor, StringComparison.OrdinalIgnoreCase);
    if (index >= 0)
    {
        richTextBox1.Select(index, textToSearchFor.Length);
        richTextBox1.SelectionFont = new Font("Arial", 12f, FontStyle.Bold);
    }
    else
    {
        // not found
    }

答案 1 :(得分:1)

第1部分:

if (myString.IndexOf("Dell Canada") > -1)
{
    // do something great;
}

答案 2 :(得分:1)

第1部分。

bool cntns = "I am working in Dell Canada, and found it ...".Contains("Dell Canada")

答案 3 :(得分:0)

第一部分非常简单,正如CK指出的那样。 富文本格式由RTF规范中定义的某些预定义代码决定。 首先使用RTF属性从控件获取基础RTF原始字符串

string rawString = richTextBox.Rtf;

例如:短语'hello Bobby'的rtf将如下所示。它类似于HTML,你有标签来定义格式。

"{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft Sans Serif;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs17 hello Bobby\\par\r\n\\par\r\n}\r\n"

现在假设我要将短语设为粗体,我会通过用

替换字符串来设置Rtf属性
"{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft Sans Serif;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs17
\\b hello Bobby\\par\r\n\\par\r\n}\r\n"

注意短语之前的\\ b。这是使给定文本变粗的代码。

要使用代码执行此格式化,请找到要格式化的字符串(使用第一种技术)并将rtf代码插入所需位置。 希望这会有所帮助。

有关代码,请参阅MSDN http://msdn.microsoft.com/en-us/library/aa140277.aspx

PS:杰夫的版本很简单。这个版本为您提供无限的控制。如果您可以在写字板中执行某些操作,则可以使用rtf代码执行相同的操作。