【发布时间】:2022-04-30 14:24:23
【问题描述】:
我有一个不好的单词列表。如果字符串包含坏词列表中的任何项目/项目,我需要从字符串中删除该坏词。
List<string> badWordList = new List<string> { "email:", "index", "mobile:", "fax:", "web" };
我可以搜索字符串但无法删除。请帮帮我...我尝试了以下代码:
string myText = "email:abc@gmail.com";
if (badWordList.Any(w => myText.IndexOf(w, StringComparison.OrdinalIgnoreCase) >= 0))
{
// How to remove
}
以下是预期输出的输入集:
-
i/p- 电子邮件:abc@gmail.com
o/p - abc@gmail.com
-
i/p- Jack F. 手机:89788987
o/p- Jack F. 89788987
-
i/p- Jack F. 电子邮件:t@p.c 手机:65777 WEB
o/p- Jack F. t@p.c 65777
我更喜欢非正则表达式的方法。感谢您的帮助。
【问题讨论】:
-
正则表达式有问题吗?这总是更快更方便。
-
myText = myText.Replace(badWordList.First(i => myText.IndexOf(w, StringComparison.OrdinalIgnoreCase) >= 0), "");通常,如果这要处理用户输入,请确保它不会。 -
@Kangkan:正则表达式没问题。
-
@PLB 答案不应该作为评论,无论答案多么简单,它就是一个答案。
-
@PhilipGullick 这不是一个解决方案,因为它在很多情况下会失败,对未来的读者没有帮助。