C#正则表达式-在连续出现另一个字符之前添加一次字符

时间:2018-09-10 11:14:37

标签: c# regex

我想在连续出现 var client = new RestClient("https://login.microsoftonline.com/" + domainname); var request = new RestRequest("/oauth2/token", Method.POST); request.AddBody("grant_type", "client_credentials"); request.AddParameter("client_id", clientId); request.AddParameter("client_secret", clientSecret); request.AddParameter("Resource", "https://graph.microsoft.com"); request.AddParameter("scope", "[scopes]"); IRestResponse response = client.Execute(request); //contains the token var content = response.Content; 之前(如果尚不存在)先加\r 一次。 / p>

\n

regex表达式的结果应返回该结果,

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

有关如何完成此操作的任何想法。

谢谢

1 个答案:

答案 0 :(得分:0)

找到不是以\n开头的\r序列。

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

由于第一组(\ r或\ n以外的任何字符,或字符串的开头)将成为匹配的一部分,因此我们需要将其重写($1),然后在{前面加上{1}}进入第二组(\r-s的序列)。

请验证我的答案,尤其是在\n是字符串中的第一个字符的情况下,因为我不确定\n的行为。

示例,替换为:

$1

应导致:

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