【问题标题】:Regular Expression to replace "\r\n" only if not preceded by "." in a string仅当前面没有“.”时才替换“\r\n”的正则表达式在一个字符串中
【发布时间】:2013-02-05 19:24:21
【问题描述】:

您能否提供一个正则表达式,我可以用它来替换字符串中的所有\r\n,只有当\r\n 不是 前面有. 时?

【问题讨论】:

    标签: regex c#-4.0


    【解决方案1】:

    要匹配一个字符,您可以将字符放在括号内,例如[.]。要匹配它,您可以使用插入符号开始字符列表,例如[^.]。这将有效匹配任何不是. 的字符。

    对于您的具体情况,您希望匹配前面没有 .\r\n。结合以上,可以使用:

    [^.]\r\n
    

    要替换它,您需要“捕获”不是句号的字符以将其保留在替换中。您可以通过将其包裹在括号中来捕获它,例如([^.])

    使用Regex.Replace(),会是这样的:

    yourString = Regex.Replace(yourString, @"([^.])\r\n", "$1");
    

    $1 是匹配的字符,并被重新替换回字符串中,现在去掉了 \r\n

    【讨论】:

    • 很好的答案,尽管我认为 OP 不值得,因为他/她在解决问题方面完全没有表现出任何努力。
    • @RuiJarimba 我试图解决这个问题的努力让我陷入了困境。世界上再也不会有人遇到这个问题了。
    【解决方案2】:

    我认为这可行

    Regex.Replace(input, @"([^.]?)\r\n", "$1");
    

    【讨论】:

      猜你喜欢
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多