我有一个如下格式的字符串
string s = "This is a Test String.\n This is a next line.\t This is a tab.\n'
我想从上面的字符串中删除所有出现的\n和\r。
我已经尝试了string s = s.Trim(new char[] {'\n', '\r'});但这并没有帮助。
我有一个如下格式的字符串
string s = "This is a Test String.\n This is a next line.\t This is a tab.\n'
我想从上面的字符串中删除所有出现的\n和\r。
我已经尝试了string s = s.Trim(new char[] {'\n', '\r'});但这并没有帮助。
当前回答
正确的选择实际上取决于输入字符串的大小以及强制和内存要求,但我会使用像这样的正则表达式
string result = Regex.Replace(s, @"\r\n?|\n|\t", String.Empty);
或者如果我们需要多次应用相同的替换,最好使用Regex的编译版本,如
var regex = new Regex(@"\r\n?|\n|\t", RegexOptions.Compiled);
string result = regex.Replace(s, String.Empty);
注意:不同的场景需要不同的方法来获得最佳的性能和最小的内存消耗
其他回答
就这么做吧
s = s.Replace("\n", String.Empty).Replace("\t", String.Empty).Replace("\r", String.Empty);
我知道这是一个老帖子,但我想分享我用来删除新行字符的方法。
s.Replace(Environment.NewLine, "");
引用:
MSDN字符串。替换方法和MSDN环境。换行符属性
如果您想从开始和结束删除,可以使用修剪。
string stringWithoutNewLine = "\n\nHello\n\n".Trim();
正确的选择实际上取决于输入字符串的大小以及强制和内存要求,但我会使用像这样的正则表达式
string result = Regex.Replace(s, @"\r\n?|\n|\t", String.Empty);
或者如果我们需要多次应用相同的替换,最好使用Regex的编译版本,如
var regex = new Regex(@"\r\n?|\n|\t", RegexOptions.Compiled);
string result = regex.Replace(s, String.Empty);
注意:不同的场景需要不同的方法来获得最佳的性能和最小的内存消耗
FYI,
Trim()已经做到了。
以下LINQPad示例:
void Main()
{
var s = " \rsdsdsdsd\nsadasdasd\r\n ";
s.Length.Dump();
s.Trim().Length.Dump();
}
输出:
23
18