OLD :
private string Check_long(string input)
{
input = input.Replace("cool", "supercool");
input = input.Replace("cool1", "supercool1");
input = input.Replace("cool2", "supercool2");
input = input.Replace("cool3", "supercool3");
return input;
}
新:
private string Check_short(string input)
{
input = Regex.Replace(input, "cool", "supercool", RegexOptions.IgnoreCase);
input = Regex.Replace(input, "cool1", "supercool1", RegexOptions.IgnoreCase);
input = Regex.Replace(input, "cool2", "supercool2", RegexOptions.IgnoreCase);
input = Regex.Replace(input, "cool3", "supercool3", RegexOptions.IgnoreCase);
return input;
}
使用String.Replace
的旧解决方案工作得很好。但它不支持不区分大小写。所以我必须检查Regex.Replace
,但现在它不起作用。那是为什么?
答案 0 :(得分:13)
您的新代码应该可以正常运行。请注意,您还可以使用capture group:
保留输入的大小写private string Check_short(string input)
{
return Regex.Replace(input, "(cool)", "super$1", RegexOptions.IgnoreCase);
}
答案 1 :(得分:5)
在这里工作正常:
string input = "iiii9";
input = Regex.Replace(input, "IIII[0-9]", "jjjj" , RegexOptions.IgnoreCase);
label1.Text = input;
输出
jjjj
答案 2 :(得分:-2)
正则表达式不像string.replace那样工作。您需要围绕要尝试过滤的内容构建正则表达式。
private string Check_short(string input)
{
input = Regex.Replace(input, ".*(cool).*", "supercool", RegexOptions.IgnoreCase);
return input;
}