Поиск предложения в строке (C #) - PullRequest
0 голосов
/ 05 июня 2009

Мой вопрос состоит из двух частей:

1) Как я могу найти предложение (например, Dell Canada) в строке (например, I am working in Dell Canada, и я нашел его ...).

2) Вторая часть моей строки - это текст в RichTextBox, поэтому я хотел бы найти TextRange этого выбранного предложения и применить определенное оформление.

спасибо.

Ответы [ 4 ]

5 голосов
/ 05 июня 2009

Дайте этому водовороту, он выделит его жирным шрифтом. Существует много свойств Selection ... в RichTextBox, которые вы можете использовать, также обратите внимание, что это поиск без учета регистра:

    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 голос
/ 05 июня 2009

Часть 1.

bool cntns = "I am working in Dell Canada, and found it ...".Contains("Dell Canada")
1 голос
/ 05 июня 2009

Часть 1:

if (myString.IndexOf("Dell Canada") > -1)
{
    // do something great;
}
0 голосов
/ 05 июня 2009

Первая часть довольно проста, как указал CK. Форматирование расширенного текста диктуется определенными предопределенными кодами, как определено в спецификации RTF. Сначала получите исходную строку RTF из элемента управления, используя свойство RTF

string rawString = richTextBox.Rtf;

Например: 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: версия Джеффа самая легкая. Эта версия дает вам бесконечный контроль. Если вы можете сделать что-то в WordPad, вы можете сделать то же самое, используя коды RTF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...