在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,则可以分别使用^
和$
来匹配行的开头和结尾。
如果您不想使用此选项,请记住新行可能是以下任何一行: n
, r
, rn
,所以不应只查看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