在C#中,可以使用正则表达式来实现不区分大小写的文本搜索,并在突出显示匹配的短语时保留原始大小写。以下是一个示例代码:
using System;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
string text = "This is a sample text for case-insensitive search.";
string keyword = "sample";
// 使用正则表达式进行不区分大小写的搜索
Regex regex = new Regex(keyword, RegexOptions.IgnoreCase);
MatchCollection matches = regex.Matches(text);
// 遍历匹配结果并保留原始大小写
foreach (Match match in matches)
{
// 获取匹配的短语在原始文本中的位置
int startIndex = match.Index;
int endIndex = match.Index + match.Length;
// 获取原始文本中的匹配短语
string originalPhrase = text.Substring(startIndex, match.Length);
// 使用原始大小写替换匹配短语
string highlightedPhrase = text.Substring(startIndex, match.Length).Replace(originalPhrase, $"<b>{originalPhrase}</b>");
// 输出突出显示匹配的短语
Console.WriteLine(highlightedPhrase);
}
}
}
上述代码中,我们首先定义了一个示例文本和要搜索的关键字。然后,使用正则表达式的IgnoreCase
选项创建了一个不区分大小写的正则表达式对象。接下来,使用Matches
方法在文本中查找所有匹配的短语,并将结果存储在MatchCollection
对象中。最后,遍历匹配结果,获取匹配短语在原始文本中的位置,并使用原始大小写替换匹配短语,从而实现保留原始大小写的突出显示。
这是一个简单的示例,实际应用中可能需要根据具体需求进行适当的调整和优化。对于更复杂的文本搜索需求,可以考虑使用全文搜索引擎或其他相关技术来提高搜索效率和准确性。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云