【发布时间】:2013-02-05 19:24:21
【问题描述】:
您能否提供一个正则表达式,我可以用它来替换字符串中的所有\r\n,只有当\r\n 不是 前面有. 时?
【问题讨论】:
您能否提供一个正则表达式,我可以用它来替换字符串中的所有\r\n,只有当\r\n 不是 前面有. 时?
【问题讨论】:
要匹配一个字符,您可以将字符放在括号内,例如[.]。要不匹配它,您可以使用插入符号开始字符列表,例如[^.]。这将有效匹配任何不是. 的字符。
对于您的具体情况,您希望匹配前面没有 . 的 \r\n。结合以上,可以使用:
[^.]\r\n
要替换它,您需要“捕获”不是句号的字符以将其保留在替换中。您可以通过将其包裹在括号中来捕获它,例如([^.])。
使用Regex.Replace(),会是这样的:
yourString = Regex.Replace(yourString, @"([^.])\r\n", "$1");
$1 是匹配的字符,并被重新替换回字符串中,现在去掉了 \r\n。
【讨论】:
我认为这可行
Regex.Replace(input, @"([^.]?)\r\n", "$1");
【讨论】: