WebBrowser 컨트롤을 사용하여 HTML 문서 작업을하고 있습니다. 단어를 검색하고 브라우저에서 강조 표시하는 유틸리티를 만들어야합니다. 문자열이 영어로되어 있으면 잘 작동하지만 한국어와 같이 다른 언어로 된 문자열의 경우 제대로 작동하지 않습니다.RegEx를 사용하여 MultiByte 문자열 검색
(가) 아래의 코드를 언급 한 시나리오는 IS-
이 지금은이 단어와 모든 발행 수를 강조 할 필요가, 사용자가 웹 페이지에서 단어 "예"를 선택한 고려 작동합니다. 또한 자신의 byteOffset을 계산해야합니다 (코드 스 니펫은 해당 작업 만 수행합니다).
이제 영어로는 아래 코드가 제대로 작동하지만 한국어와 같은 언어에서는 전혀 작동하지 않습니다.
그것를위한 각 루프
foreach (Match m in reg.Matches(this._documentContent))
내부 못하고 여기 _documentContent는 문자열로 웹 페이지 소스가 포함되어 있습니다. 발생 없음 아니요. 코드가 영어 단어에 대한 작동하지만, 한국어에 대한 결과를 반환하지 않습니다
string strTemp = myRange.text;
string strExp [email protected]">(([^<])*?)" + 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;
}
}
}
실제 코드가 도움이 될 것입니다 ... – RageZ
몇 가지 코드를 게시 할 수 있습니까? C#은 유니 코드이므로 인코딩이 제대로 읽혀지면 문자열을 가지고 무엇이든 할 수 있어야합니다. –