Regex that matches a newline (\n) in C#

OK, this one is driving me nuts.... I have a string that is formed thus:

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

newContent will display like:
(old text)
new text

I need a regular expression that strips away the text between parentheses with the parenthesis included AND the newline character.

The best I can come up with is:

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

This works, but I want specifically to match the newline (\n), not any whitespace (\s) Replacing \s with \n \\n or \\\n does NOT work.

Please help me hold on to my sanity!

EDIT: an example:

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

Solution 1:

If you specify RegexOptions.Multiline then you can use ^ and $ to match the start and end of a line, respectively.

If you don't wish to use this option, remember that a new line may be any one of the following: \n, \r, \r\n, so instead of looking only for \n, you should perhaps use something like: [\n\r]+, or more exactly: (\n|\r|\r\n).

Solution 2:

Actually it works but with opposite option i.e.

 RegexOptions.Singleline

Solution 3:

You are probably going to have a \r before your \n. Try replacing the \s with (\r\n).

Solution 4:

Think I may be a bit late to the party, but still hope this helps.

I needed to get multiple tokens between two hash signs.

Example i/p:

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

This seemed to work in my case:

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

Of course, you may want to replace the double hash signs at both ends with your own chars.

HTH.