在单词的部分匹配上替换SubString

时间:2014-05-07 10:07:01

标签: c#

我有两个字符串: -

String S1 = "This is my\r\n string."
String S2 = "This is my\n self."

我希望有一个通用的方法来将“\ n”的任何存在替换为“\ r \ n”。但它不应该替换字符串的任何部分,如果它已经有“\ r \ n”。

3 个答案:

答案 0 :(得分:1)

将正则表达式与negative lookbehind

一起使用
string result = Regex.Replace(input, @"(?<!\r)\n", "\r\n");

它匹配\n之前没有的所有\r

答案 1 :(得分:0)

假设您有良好的标准输入文本,即没有连续的\r,您只需使用:

var result = S1.replace("\n","\r\n").replace("\r\r","\r")

这在一般情况下不会起作用,显然

答案 2 :(得分:0)

尝试这样的事情:

var unused = "§";
S2 =
    S2
        .Replace("\r\n", unused)
        .Replace("\n", unused)
        .Replace(unused, "\r\n");