首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#中不区分大小写的文本搜索:如何在突出显示匹配的短语时保留原始大小写?

在C#中,可以使用正则表达式来实现不区分大小写的文本搜索,并在突出显示匹配的短语时保留原始大小写。以下是一个示例代码:

代码语言:txt
复制
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对象中。最后,遍历匹配结果,获取匹配短语在原始文本中的位置,并使用原始大小写替换匹配短语,从而实现保留原始大小写的突出显示。

这是一个简单的示例,实际应用中可能需要根据具体需求进行适当的调整和优化。对于更复杂的文本搜索需求,可以考虑使用全文搜索引擎或其他相关技术来提高搜索效率和准确性。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯区块链服务(Tencent Blockchain):https://cloud.tencent.com/product/tencentblockchain
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券