The .NET Regex type
Much of this chapter has been concerned with the -match
operator. The -match
operator is extremely useful but has a short-coming: it returns a single contiguous string match from the value on the left-hand side of the operator; it cannot return more than one match except when using capture groups.
It is occasionally desirable to return all matches from a string. There are two ways to tackle this:
- Use the
Select-String
command with theAllMatches
parameter - Use the static
Matches
method of theRegex
type
For example, the following string contains several key-value pairs:
$string = @'
Name: Ruth
Job title: Programmer
Language: C#
Level: Senior
'@
Each individual line can be broken down into a key and value pair using the following regular expression:
^(?<Key>[^:]+): (?<Value>.+)$
For example, the first line matches the expression. The value Name
is placed in the group named Key
. The value Ruth
is...