代码之家  ›  专栏  ›  技术社区  ›  Mujeeb

C#Regex-在连续出现另一个字符之前添加一个字符

  •  -1
  • Mujeeb  · 技术社区  · 6 年前

    预支 \r 一旦 在连续发生 \n

    string myString = "This\nis a\n\nstring that\r\n\n has many\r\nlines"
    

    正则表达式的结果应返回此结果,

    string myString = "This\r\nis a\r\n\nstring that\r\n\n has many\r\nlines"
    

    有没有什么办法可以解决这个问题。

    谢谢

    1 回复  |  直到 6 年前
        1
  •  0
  •   V0ldek    6 年前

    找出一系列的 \n 这不是从一个 \r .

    Regex.Replace(myString, @"([^\r\n]|^)(\n)+", "$1\r$2");
    

    由于第一组(除或\r\n或字符串开头以外的任何字符)将是匹配的一部分,因此我们需要重写它( $1 \右 第二组(顺序 -s) 是的。

    请验证我的答案,尤其是在 是字符串中的第一个字符,因为我不确定 $1 那么。

    例如,替换为:

    \n \r\n\n abc\n\r\n \nx\ny\r\n
    

    \r\n \r\n\n abc\r\n\r\n \r\nx\r\ny\r\n