Replace String.Replace with Regex.Replace

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; } 

NEW

 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; } 

The old solution with String.Replace worked fine. But he did not support case sensitivity. So I needed to check out Regex.Replace , but now this will not work. Why is this?

+7
string c # regex replace
source share
3 answers

Your new code should work fine. Note that you can also save your input using a capture group:

 private string Check_short(string input) { return Regex.Replace(input, "(cool)", "super$1", RegexOptions.IgnoreCase); } 
+13
source share

works great:

  string input = "iiii9"; input = Regex.Replace(input, "IIII[0-9]", "jjjj" , RegexOptions.IgnoreCase); label1.Text = input; 

Exit

 jjjj 
+5
source share

Regex doesn't work the way string.replace does. You need to create a regular expression around what you are trying to filter.

 private string Check_short(string input) { input = Regex.Replace(input, ".*(cool).*", "supercool", RegexOptions.IgnoreCase); return input; } 
-2
source share

All Articles