How to match the text after a substring of a multiline string with regex in VB.NET

2 Answers

0 votes
Imports System
Imports System.Text.RegularExpressions

Module Program
    Sub Main()
		Dim text As String = "----- Received -----" & Environment.NewLine &
            "Date: 26/05/2026" & Environment.NewLine &
            "To: Robert" & Environment.NewLine &
            "From: Jennifer" & Environment.NewLine &
            "Subject: Write Code Meeting" & Environment.NewLine & Environment.NewLine &
            "Let's start today!" & Environment.NewLine & Environment.NewLine &
            "----- Forwarded Message -----" & Environment.NewLine &
            "To: Mary" & Environment.NewLine &
            "From: Mark" & Environment.NewLine &
            "Subject: Fwd: Write Code Meeting" & Environment.NewLine & Environment.NewLine &
            "Robert want to start today, join us."

        Dim matches = Regex.Matches(text, "^From:\s*(.*)", RegexOptions.Multiline)

        Console.WriteLine("Found From entries:")
        For Each m As Match In matches
            Console.WriteLine(m.Groups(1).Value)
        Next
    End Sub
End Module


 
' run:
' 
' Found From entries:
' Jennifer
' Mark
'


 



answered May 26 by avibootz
0 votes
Imports System
Imports System.Text.RegularExpressions

Module Program
    Sub Main()
        Dim header As String = "From:"   ' <-- Make this whatever header you want to match

        Dim pattern As String = "^" & Regex.Escape(header) & "\s*(.*)"

        Dim text As String = "----- Received -----" & Environment.NewLine &
            "Date: 26/05/2026" & Environment.NewLine &
            "To: Robert" & Environment.NewLine &
            "From: Jennifer" & Environment.NewLine &
            "Subject: Write Code Meeting" & Environment.NewLine & Environment.NewLine &
            "Let's start today!" & Environment.NewLine & Environment.NewLine &
            "----- Forwarded Message -----" & Environment.NewLine &
            "To: Mary" & Environment.NewLine &
            "From: Mark" & Environment.NewLine &
            "Subject: Fwd: Write Code Meeting" & Environment.NewLine & Environment.NewLine &
            "Robert want to start today, join us."

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

        Console.WriteLine("Matches for header: " & header)
        For Each m As Match In matches
            Console.WriteLine(m.Groups(1).Value)
        Next
    End Sub
End Module
 
 
' run:
' 
' Found From entries:
' Jennifer
' Mark
'

 



answered May 26 by avibootz
...