Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 was working just fine. But it didn't support case-insensitivity. So I had to check for Regex.Replace, but now it won't work. Why is that ?

like image 277
dll32 Avatar asked Dec 05 '10 22:12

dll32


2 Answers

Your new code should work fine. Note that you can also retain the case of your input using a capture group:

private string Check_short(string input)
{    
    return Regex.Replace(input, "(cool)", "super$1", RegexOptions.IgnoreCase);
}
like image 93
Dexter Avatar answered Sep 19 '22 13:09

Dexter


working fine here:

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

output

jjjj
like image 39
m.qayyum Avatar answered Sep 20 '22 13:09

m.qayyum