好吧,这个让我疯了......我有一个字符串,这样就形成了:
var newContent = string.Format("({0})\n{1}", stripped_content, reply)
Run Code Online (Sandbox Code Playgroud)
newContent将显示如下:(
旧文本)
新文本
我需要一个正则表达式,用括号括起来的括号中的文本和换行符.
我能想到的最好的是:
const string regex = @"^(\(.*\)\s)?(?<capture>.*)";
var match= Regex.Match(original_content, regex);
var stripped_content = match.Groups["capture"].Value;
Run Code Online (Sandbox Code Playgroud)
这工作,但我想专门匹配换行符(\n),没有任何空格(\s)替换\s用\n \\n或\\\n无法正常工作.
请帮我保持理智!
编辑:一个例子:
public string Reply(string old,string neww)
{
const string regex = @"^(\(.*\)\s)?(?<capture>.*)";
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
Run Code Online (Sandbox Code Playgroud)
Jon*_*ant 67
如果指定RegexOptions.Multiline,则可以分别使用^和$匹配行的开头和结尾.
如果你不希望使用此选项,请记住,一个新行可能是以下中的任何一个:\n,\r,\r\n,所以不是寻找只为\n,你或许应该使用这样的:[\n\r]+,或者更确切地说:(\n|\r|\r\n).
Sau*_*ius 20
实际上它有效,但有相反的选择即
RegexOptions.Singleline
Run Code Online (Sandbox Code Playgroud)
:-)