Csharp/C#教程:在C#中匹配换行符( n)的正则表达式分享


在C#中匹配换行符( n)的正则表达式

好的,这个让我疯了……我有一个字符串,这样就形成了:

var newContent = string.Format("({0})n{1}", stripped_content, reply) 

newContent将显示如下:
(旧文)
新文本

我需要一个正则表达式,用括号括起来的括号中的文本和换行符。

我能想到的最好的是:

 const string regex = @"^((.*)s)?(?.*)"; var match= Regex.Match(original_content, regex); var stripped_content = match.Groups["capture"].Value; 

这有效,但我想专门匹配换行符( n ),而不是任何空格( s )用n \n\n替换s \n不起作用。

请帮我保持理智!

编辑:一个例子:

 public string Reply(string old,string neww) { const string regex = @"^((.*)s)?(?.*)"; var match= Regex.Match(old, regex); var stripped_content = match.Groups["capture"].Value; var result= string.Format("({0})n{1}", stripped_content, neww); return result; } Reply("(messageOne)nmessageTwo","messageThree") returns : (messageTwo) messageThree 

如果指定RegexOptions.Multiline,则可以分别使用^$来匹配行的开头和结尾。

如果您不想使用此选项,请记住新行可能是以下任何一行: nrrn ,所以不应只查看n ,而应该使用类似的东西: [nr]+ ,或更确切地说: (n|r|rn)

实际上它有效,但有相反的选择即

  RegexOptions.Singleline 

?

您可能会在 n之前有一个 r n。 尝试用( r n)替换 s。

如果您正在尝试匹配行结尾,那么您可能会发现

 Regex.Match("string", "regex", RegexOptions.Multiline) 

帮助

想想我可能会有点迟到,但仍然希望这会有所帮助。

我需要在两个哈希标志之间获得多个令牌。

示例i / p:

## token1 ##
## token2 ##
## token3_a
token3_b
token3_c ##

这似乎适用于我的情况:

var matches = Regex.Matches (mytext, "##(.*?)##", RegexOptions.Singleline);

当然,您可能希望用自己的字符替换两端的双哈希符号。

HTH。

上述就是C#学习教程:在C#中匹配换行符( n)的正则表达式分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1034985.html

(0)
上一篇 2022年1月19日
下一篇 2022年1月19日

精彩推荐