C#正则表达式没有删除所有不需要的字符?

时间:2012-08-22 14:52:02

标签: c# regex string

我想要清理的字符串看起来像

"\r\nPasswordchanged?\r\r\n"    string

我使用了这种方法

public string[] cleanStrings(string[] clean)
    {
        int j = 0;
        foreach (string data in clean)
        {
            string temp = System.Text.RegularExpressions.Regex.Replace(data, @"\r\n+", "");
            if (temp.Equals(" "))
            {
                temp = "";
            }
            clean[j] = temp;
            j++;
        }
        return clean;
    }

结果是

"Passwordchanged?\r"    string

我认为我的正则表达式会删除所有\r\n

我错过了什么吗?

1 个答案:

答案 0 :(得分:5)

改为使用字符类,特别是[\r\n]。这样,角色类中的任何角色都将匹配。

string result = Regex.Replace(data, @"[\r\n]", "");

您当前的模式\r\n+仅匹配\r后跟一个或多个\n个字符,因此无法与其他独立{{1}匹配例如,字符。