替换列表<;字符串>;

本文关键字:字符串 gt lt 列表 替换 | 更新日期: 2023-09-27 18:08:31

我需要帮助解决以下问题

我有字符串:

string myString = "This is not a drill"

和字符串列表:

List<string> lst = {"January", "james", "not"}

我想查找列表中是否有任何项目在字符串中,并将其替换为$$string$$

所需输出:

"这不是训练$$">

感谢

更新

我试着用

termsList.Any(sentence.SentenceContent.Contains)

查找它是否包含在字符串中然后

Regex.Replace(input, textToFind, replace);

但它不起作用

替换列表<;字符串>;

简单。遍历List中的所有字符串,然后检查myString是否包含该字符串。如果是,则更换。

foreach (string item in lst)
{
    if (myString.Contains(item))
    {
        myString = myString.Replace(item, string.Format("$${0}$$", item));
    }
}

你也可以用LINQ做同样的事情:

lst.Where(item=> myString.Contains(item)).ToList()
   .ForEach(item => myString = myString.Replace(item, string.Format("$${0}$$", item)));

您还可以按空格分割字符串,并检查它们是否存在于列表中:

 myString.Split(' ').ToList()
         .Where(x => lst.Contains(x)).ToList()
         .ForEach(item => myString = myString.Replace(item, string.Format("$${0}$$", item)));

不区分大小写

Contains(x)更改为Contains(x, StringComparer.OrdinalIgnoreCase)

例如第三种方法:

 myString.Split(' ').ToList()
         .Where(x => lst.Contains(x, StringComparer.OrdinalIgnoreCase)).ToList()
         .ForEach(item => myString = myString.Replace(item, string.Format("$${0}$$", item)));