【问题标题】:C# Replace string case insensitive [duplicate]C#替换字符串不区分大小写[重复]
【发布时间】:2014-04-11 13:24:56
【问题描述】:

我想将字符串“Input”中的“fWord”替换为不区分大小写。

while (FilteredWords.Any(Input.Contains))
{
    foreach (string fWord in FilteredWords)
    {
        Input = Input.Replace(fWord, "****");
    }
}

(FilteredWords 是字符串列表,Input 是要“清理”的字符串) 它有效,但是区分大小写。 如何让 fWord 在替换时不区分大小写?

【问题讨论】:

  • 你可以使用regexp.replace
  • 不,这不是重复的,因为我已经看到该方法对我不起作用(仍然区分大小写)....
  • @user3395421 只是说“它不起作用”并不会自动使其不再重复。建议 IT 部门确认其他问题并解释为什么它不起作用。

标签: c# .net replace


【解决方案1】:

如果重复问题的答案对您没有帮助,这是您案例中的代码(请注意,我删除了 while 循环 - 如果大小写不同,则其中的条件为假,而且您也不是真的需要):

foreach (string fWord in FilteredWords)
{
    Input = Regex.Replace(Input, fWord, "****", RegexOptions.IgnoreCase);
}

例如下面的代码

string fWord = "abc";
input = "AbC";
input = Regex.Replace(input, fWord, "****", RegexOptions.IgnoreCase);

产生值****

【讨论】:

  • 仍然无法正常工作...我输入“abc”,我得到“****”,但如果我输入“AbC”,我得到“AbC”
  • 在这种情况下fWord 是什么?
  • 它来自一个foreach,你可以看到它是由一个字符串列表选择的
  • 变量的值是多少?
  • 这个列表目前只包含字符串“abc”和“def”,因为我还在测试它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 1970-01-01
  • 2012-02-29
  • 2014-06-20
  • 2011-03-01
相关资源
最近更新 更多