Parsing text with regular expressions in C#

Regular Expressions are powerful! Programmers who use them are impressed with what they can do and…how hard it is to find out the correct pattern, only to forget about them until the next project. This post is a note to my future self with patterns I’ve used.

The first thing you need to test regular expression patterns is a Regex tester like



The Regex engine in .NET (System.Text.RegularExpressions) evaluates a string like 20 goto 1 with a pattern like \d{0,1}. In this case the regex finds 2 matches: 10 and 20 because:

{0,1} is called a greedy pattern, which means it will return 20 instead of 2 and 0.

in C# it would look like this:

var input = "20 goto 1";
var pattern = @"\d{1,2}";
var match = Regex.Match(input, pattern);

It’s simple and powerful once you get it. I will add regex patterns to this post as I use them.

Find 1-or-2-digit decimal numbers in text

This pattern finds all occurrences of numbers between 0 and 99 in text:


Find all tags (#tag) in text




this is a #tag and another #tag

Match information:

Match 1
Full match	10-14	`#tag`
Group 1.	11-14	`tag`

Match 2
Full match	27-31	`#tag`
Group 1.	28-31	`tag`

Match if string starts with time in 24-hour format




12:00 Schloßpark Köpenick (until 19:00)

Match information:

Match 1
Full match	0-5	`12:00`
Group 1.	0-2	`12`
Group 2.	3-5	`00`