이 글은 주로 C# 검색 대소문자 구분 및 강조 표시 관련 정보를 소개하며, 도움이 필요한 친구는
C# 검색 대소문자 구분 및 강조 표시에 대한 자세한 설명을 참조하세요. 예
오늘 문제가 발생했습니다. 웹 페이지에서 대소문자를 구분하지 않는 키워드를 강조 표시하는 방법
예: 텍스트 abcaBcabCaBCabcaBCa, 키워드 bc, 대소문자를 구분하지 않는 경우 다음이 있습니다. 총 6경기.
그러면 웹 페이지에 표시되는 것은 abcaBcabCaBCabcaBCa입니다.
많은 사람들이 교체 기능을 떠올립니다. 그러나 C#에서는 바꾸기 기능으로 대소문자 문제를 해결할 수 없습니다.
예를 들어 bc, Bc, bC, BC를 모두 검색했지만 단일 텍스트로 대체할 수 없습니다.
위 텍스트는 Daniel "Wancang Yimi"의 기사에서 재현되었습니다. " - -"대소문자를 구분하지 않는 키워드 강조 표시 - ASP".
하지만 그의 기사는 ASP 버전으로 작성되었으며, 오늘은 C# 버전으로 작성했습니다.
해결책: IndexOf 사용
IndexOf(String, Int32, StringComparison)
지정된 문자열이 현재 문자열에 있습니다. 개체에서 처음 나타나는 인덱스입니다.
매개변수
value 类型: System. String 要搜寻的字符串。 startIndex 类型: System. Int32 搜索起始位置。 comparisonType 类型: System. StringComparison 指定搜索规则的枚举值之一。 (OrdinalIgnoreCase:使用序号排序规则并忽略被比较字符串的大小写,对字符串进行比较。)
코드
/// <summary> /// 高亮查找关键字。 /// </summary> /// <param name="str">文本。</param> /// <param name="keyword">关键字</param> /// <returns>含高亮标识的文本。</returns> /// <remarks> /// 1、字母不区分大小写。 /// 2、CssClass 名称为 highlight。 /// </remarks> private string HighLightKeyword(string str, string keyword) { int index; var startIndex = 0; const string highLightBegin = "<span class='highlight'>"; const string highLightEnd = "</span>"; var length = highLightBegin.Length + keyword.Length; var lengthHighlight = length + highLightEnd.Length; while ((index = str.IndexOf(keyword, startIndex, StringComparison.OrdinalIgnoreCase)) > -1) { str = str.Insert(index, highLightBegin).Insert(index + length, highLightEnd); startIndex = index + lengthHighlight; } return str; }
위 내용은 C#은 대소문자를 구분하지 않는 검색을 구현하고 샘플 코드 공유를 강조 표시합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!