Regular Expression Basics C# Book

Character sets act as wildcards for a particular set of characters.
Expression Meaning Inverse ("not")
[abcdef] Matches a single character in the list [^abcdef]
[a-f] Matches a single character in a range [^a-f]
\d Matches a decimal digit Same as [0–9] \D
\w Matches a word character \W
\s Matches a whitespace character Same as [\n\r\t\f] \S
\p{category} Matches a character in a specified category \P
. (Default mode) Matches any character except \n \n
. (SingleLine mode) Matches any character \n
Character categories
Quantifier Meaning
\p{L} Letters
\p{Lu} Uppercase letters
\p{Ll} Lowercase letters
\p{N} Numbers
\p{P} Punctuation
\p{M} Diacritic marks
\p{S} Symbols
\p{Z} Separators
\p{C} Control characters
To match exactly one of a set of characters, put the character set in square brackets:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main(string[] args)
{
Console.Write(Regex.Matches("That demo is that demo.", "[Tt]hat").Count);
}
}
The output:
2
To match any character except those in a set, put the set in square brackets with a ^ symbol before the first character:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main(string[] args)
{
Console.Write(Regex.Match("quiz quest", "q[^aeiou]").Index);
}
}
The output:
0
You can specify a range of characters with a hyphen.
The following regular expression captures a chess move:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main(string[] args)
{
Console.Write(Regex.Match("b1-c4", @"[a-h]\d-[a-h]\d").Success);
}
}
The output:
True
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main(string[] args)
{
Console.Write(Regex.IsMatch("Yes, please", @"\p{P}"));
}
}
The output:
True
We will find more uses for \d, \w, and . when we combine them with quantifiers.