Regex: delete everything except allowed characters. as?

If I have a string like "xktzMnTdMaaM", how do I delete everything except "M" and "T", so the resulting string is "MTMM"? Thanks in advance.

+5
source share
3 answers
var input = "xktzMnTdMaaM";
var output = Regex.Replace(input, "[^MT]", string.Empty);

and if you want to be case insensitive:

var output = Regex.Replace(input, "[^mt]", string.Empty, RegexOptions.IgnoreCase);
+19
source

To add Darin to the answer, you can solve it differently using LINQ if you want:

string.Concat("xktzMnTdMaaM".Where(c => "MT".Contains(c)))
0
source

. :

    public static string RemoveNonMTChars(string str)
    {
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < str.Length; i++)
        {
            if (str[i] == 'M' && str[i] == 'T')
            {
                sb.Append(str[i]);
            }
        }

        return sb.ToString();
    }
0

All Articles