更多信息如果你感覺特別聰明,不希望使用正則表達式:
char[] separators = new char[]{' ',';',',','\r','\t','\n'};
string s = "this;is,\ra\t\n\n\ntest";
string[] temp = s.Split(separators, StringSplitOptions.RemoveEmptyEntries);
s = String.Join("\n", temp);
你可以在毫不費力的擴展方法包裝這一點。
編輯:或者等待2分鐘,我會放棄以前的撰寫吧:)
public static class ExtensionMethods
{
public static string Replace(this string s, char[] separators, string newVal)
{
string[] temp;
temp = s.Split(separators, StringSplitOptions.RemoveEmptyEntries);
return String.Join(newVal, temp);
}
}
瞧...
char[] separators = new char[]{' ',';',',','\r','\t','\n'};
string s = "this;is,\ra\t\n\n\ntest";
s = s.Replace(separators, "\n");
'\ t'和'\ r'都包含在'\ s'。所以你的正則表達式相當於'[;,\ s]'。 – NullUserException
而'\ s'實際上等同於'[\ f \ n \ r \ t \ v]',所以你在那裏包含了一些原始問題中沒有的東西。另外,原始問題要求替換(「\ n \ n」,「\ n」)'您的正則表達式不處理。 – NullUserException
不知道爲什麼RegEx逃脫了我的想法......謝謝。 – zgirod