使用正则表达式替换特殊字符

时间:2016-12-07 21:06:42

标签: c# regex replace

我试图在c#中获取一些代码来检查字符串的开头或结尾,看看它是否有" \ r \ n"在其中一个位置,如果它,我想删除这些字符。 如果它们不在开头或结尾,我不想删除这些字符。

前:

string tempStringA = "\r\n123\r\n456\r\n";
string tempStringB = "\r\n123\r\n456";
string tempStringC = "123\r\n456\r\n";

tempStringA,tempStringB和tempStringC都将成为" 123 \ r \ n \ n456"

3 个答案:

答案 0 :(得分:1)

string str = @"\r\n123\r\n456\r\n";
str = Regex.Replace(str, @"^(\r\n)+|(\r\n)+$", "");

这适用于您的示例,如果有时会出现多个字符,也适用于“\ r \ n \ r \ n123 \ r \ n \ n456 \ r \ n \ r \ n”。< / p>

编辑:也适用于“\ r \ n123 \ r \ n \ n456”和“123 \ r \ n \ n \ n \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <\ n \”

答案 1 :(得分:1)

var str1 = "\r\n123\r\n456\r\n";
var str2 = Regex.Replace(str1, @"^\r\n|\r\n$", "");

这只会删除字符串

开头和结尾的\r\n

答案 2 :(得分:0)

这不是正则表达式,但正则表达式在这里可能过度。

string.Join( "\r\n", "\r\n123\r\n456\r\n".Split(new string[]{"\r\n"}, StringSplitOptions.RemoveEmptyEntries))