我需要将字符串中的每个换行符替换为另一个字符(例如“X”)。我不希望用一个换行符折叠多个换行符!
PS:这个正则表达式用单个换行符替换所有连续的换行符,但这不是我需要的。
Regex regex_newline = new Regex("(\r\n|\r|\n)+");
这将用某些东西替换一个或多个换行符,不一定是单个换行符 - 这是由 regex_newline.Replace(...) 调用决定的,您没有显示它。
所以基本上,答案是
Regex regex_newline = new Regex("(\r\n|\r|\n)"); // remove the '+'
// :
regex_newline.replace(somestring, "X");
只需使用
String.Replace
方法并替换字符串中的 Environment.NewLine
即可。不需要正则表达式。
http://msdn.microsoft.com/en-us/library/system.environment.newline.aspx
自从.Net6 ReplaceLineEndings扩展方法提供了这样的能力。
string tmp = """
1
2
""";
Console.WiteLine(tmp.ReplaceLineEndings()); // replace line endings to Environment.NewLine
Console.WiteLine(tmp.ReplaceLineEndings("<br/>")); // replace line endings to <br/>