Title here
Summary here
Our first program demonstrates the use of regular expressions in C#. Here’s the full source code:
using System;
using System.Text.RegularExpressions;
class RegularExpressions
{
static void Main()
{
// This tests whether a pattern matches a string.
bool match = Regex.IsMatch("peach", @"p([a-z]+)ch");
Console.WriteLine(match);
// For other regex tasks, you'll need to create a Regex object.
Regex r = new Regex(@"p([a-z]+)ch");
// Many methods are available on these objects. Here's
// a match test like we saw earlier.
Console.WriteLine(r.IsMatch("peach"));
// This finds the match for the regex.
Console.WriteLine(r.Match("peach punch").Value);
// This finds the first match but returns the
// start and end indexes for the match instead of the
// matching text.
Match m = r.Match("peach punch");
Console.WriteLine($"idx: [{m.Index}, {m.Index + m.Length}]");
// The Group property provides information about
// both the whole-pattern matches and the submatches
// within those matches.
m = r.Match("peach punch");
Console.WriteLine($"[{m.Value}, {m.Groups[1].Value}]");
// The Captures property provides information about
// the indexes of matches and submatches.
m = r.Match("peach punch");
Console.WriteLine($"[{m.Index}, {m.Index + m.Length}, {m.Groups[1].Index}, {m.Groups[1].Index + m.Groups[1].Length}]");
// The Matches method finds all matches in the input.
MatchCollection matches = r.Matches("peach punch pinch");
foreach (Match match in matches)
{
Console.Write(match.Value + " ");
}
Console.WriteLine();
// We can also get all the match information.
matches = r.Matches("peach punch pinch");
Console.Write("all: ");
foreach (Match match in matches)
{
Console.Write($"[{match.Index}, {match.Index + match.Length}, {match.Groups[1].Index}, {match.Groups[1].Index + match.Groups[1].Length}] ");
}
Console.WriteLine();
// The Replace method can be used to replace subsets of strings.
Console.WriteLine(r.Replace("a peach", "<fruit>"));
// The Regex.Replace method with a MatchEvaluator allows you to
// transform matched text with a given function.
string result = Regex.Replace("a peach", @"p([a-z]+)ch", m => m.Value.ToUpper());
Console.WriteLine(result);
}
}
To run the program, save it as RegularExpressions.cs
and use the C# compiler:
$ csc RegularExpressions.cs
$ RegularExpressions.exe
True
True
peach
idx: [0, 5]
[peach, ea]
[0, 5, 1, 3]
peach punch pinch
all: [0, 5, 1, 3] [6, 11, 7, 9] [12, 17, 13, 15]
a <fruit>
a PEACH
This example demonstrates various operations with regular expressions in C#, including matching, finding, replacing, and transforming text based on patterns. The System.Text.RegularExpressions
namespace provides the Regex
class, which is the main class for working with regular expressions in C#.
For a complete reference on C# regular expressions, check the Regular Expression Language - Quick Reference in the Microsoft documentation.