Я работаю над HTML-документами, используя элемент управления WebBrowser, мне нужно создать утилиту, которая ищет слово и выделяет его в браузере. Это работает хорошо, если строка на английском языке, но для строк на других языках, например на корейском, это не работает.
Сценарий, в котором работает приведенный ниже код, -
Считайте, что пользователь выбрал слово "Пример" на веб-странице, теперь мне нужно выделить это слово и все его вхождения. Также мне нужно вычислить их byteOffset (фрагмент кода делает это только).
Теперь для английского языка приведенный ниже код работает нормально, но для таких языков, как корейский, он вообще не работает.
не попадает внутрь цикла for-each
foreach (Match m in reg.Matches(this._documentContent))
здесь _documentContent содержит источник веб-страницы в виде строки.
Происшествие Нет, нет. вхождения выбранного слова в документ
Вот код, strTemp содержит корейскую строку:
string strTemp = myRange.text;
string strExp =@">(([^<])*?)" + strTemp + "(([^<])*?)<";
int intCount =0;
Regex reg = new Regex(strExp);
Regex reg1 = new Regex(strTemp);
foreach (Match m in reg.Matches(this._documentContent))
{
string strMatch = m.Value;
foreach (Match m2 in reg.Matches(strMatch))
{
intCount += 1;
if (intCount==OccurenceNo)
{
int intCharOffset = m.Index + m2.Index;
System.Text.UTF8Encoding d = new System.Text.UTF8Encoding();
int intByteOffset = d.GetBytes( _documentContent.Substring(1, intCharOffset)).Length;
}
}
}