How to match the text after a substring of a multiline string with regex in C#

2 Answers

0 votes
using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string text = @"----- Received -----
Date: 26/05/2026
To: Robert
From: Jennifer
Subject: Write Code Meeting

Let's start today!

----- Forwarded Message -----
To: Mary
From: Mark
Subject: Fwd: Write Code Meeting

Robert want to start today, join us.";

        // Regex to match "From:" at the start of any line
        var matches = Regex.Matches(text, @"^From:\s*(.*)", RegexOptions.Multiline);

        Console.WriteLine("Found From entries:");
        foreach (Match m in matches) {
            Console.WriteLine(m.Groups[1].Value);
        }
    }
}


/*
run:

Found From entries:
Jennifer
Mark

*/

 



answered May 26 by avibootz
0 votes
using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string text = @"----- Received -----
Date: 26/05/2026
To: Robert
From: Jennifer
Subject: Write Code Meeting

Let's start today!

----- Forwarded Message -----
To: Mary
From: Mark
Subject: Fwd: Write Code Meeting

Robert want to start today, join us.";

        string header = "From:"; // <-- Make this whatever header you want to match

        // Build regex dynamically and safely
        string pattern = "^" + Regex.Escape(header) + @"\s*(.*)";

        var matches = Regex.Matches(text, pattern, RegexOptions.Multiline);

        Console.WriteLine("Found " + header + " entries:");
        foreach (Match m in matches) {
            Console.WriteLine(m.Groups[1].Value);
        }
    }
}



/*
run:

Found From entries:
Jennifer
Mark

*/

 



answered May 26 by avibootz
...