正则表达式只有在没有“。”之前才能替换“\ r \ n”。在一个字符串中

时间:2013-02-05 19:24:21

标签: regex c#-4.0

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

2 个答案:

答案 0 :(得分:7)

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

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

.

要替换它,您需要“捕获”不是一段时间的角色以保持替换。您可以通过将其包装在括号中来捕获它,例如[^.]\r\n

使用Regex.Replace(),它将类似于:

([^.])

yourString = Regex.Replace(yourString, @"([^.])\r\n", "$1"); 是匹配的字符,并重新替换回字符串,现在已被剥离$1

答案 1 :(得分:2)

我认为这会起作用

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