I have the following text:
--------------030805090908050805080502
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-ID: <[email protected]>
/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+4ADkFkb2JlAGTAAAAA
/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+4ADkFkb2JlAGTAAAAA
QBQH/9k=
--------------030805090908050805080502
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-ID: <[email protected]>
/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+4ADkFkb2JlAGTAAAAA
/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+4ADkFkb2JlAGTAAAAA
juu41lRHFLufPCAID//Z
--------------030805090908050805080502--
And I need to get with Regex in C# 2 parts:
"--------------030805090908050805080502"
"--------------030805090908050805080502"
and "--------------030805090908050805080502--"
I tried this regex:
--------------030805090908050805080502(\r.*)*--------------030805090908050805080502
but in C# regex.Matches(...)
returns only "--------------030805090908050805080502"
.
MatchCollection matches = Regex.Matches( text, @"([-]+\d{24})
(?<Content>.*?)
(?=\1)",
RegexOptions.IgnorePatternWhitespace |
RegexOptions.Singleline );
foreach ( Match match in matches )
{
Console.WriteLine(
string.Format( "match: {0}\n\n",
match.Groups[ "Content" ].Value ) );
}
Update: This expression will find all matches that come between two occurrences of a number. If the number needs to be a specific one, rather than any 24-digit number, change "\d{24}" to the number you want to match.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With