Regular Expression Usage (from get-help)

TOPIC
Regular expressions

SHORT DESCRIPTION
Using regular expressions in Cmdlet parameters in the Windows PowerShell

LONG DESCRIPTION

PowerShell supports a number of the regular expression characters:

Format Logic Example
——– ——————————- ———————–
value Matches exact characters “book” -match “oo”
anywhere in the original value
. Matches any single character “copy” -match “c..y”
[value] Matches at least one of the “big” -match “b[iou]g”
characters in the brackets
[range] Matches at least one of the “and” -match “[a-e]nd”
characters within the range.
The Use of a hyphen (–) allows
specification of contiguous
character.
[^] Matches any character except “and” -match “[^brt]nd”
those in brackets
^ Matches the beginning “book” -match “^bo”
characters
$ Matches the end characters “book” -match “ok$”
* Matches zero or more instances “baggy” -match “g*”
of the preceding character
? Matches zero or one instance “baggy” -match “g?”
of the preceding character
\ Matches the character that “Try$” -match “Try\$”
follows as an escaped character

PowerShell supports the character classes available in .NET regular
expressions
Format Logic Example
——– ——————————- ———————–
\p{name} Matches any character in the “abcd defg” -match “\p{Ll}+”
named character class specified
by {name}. Supported names are
Unicode groups and block
ranges. For example, Ll, Nd,
Z, IsGreek, IsBoxDrawing.
\P{name} Matches text not included in 1234 -match “\P{Ll}+”
groups and block ranges
specified in {name}.
\w Matches any word character. “abcd defg” -match “\w+”
Equivalent to the Unicode (this matches abcd)
character categories [\p{Ll}
\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}].
If ECMAScript-compliant behavior
is specified with the ECMAScript
option, \w is equivalent to
[a-zA-Z_0-9].
\W Matches any nonword character. “abcd defg” -match “\W+”
Equivalent to the Unicode (This matches the space)
categories [^\p{Ll}\p{Lu}\p{Lt}
\p{Lo}\p{Nd}\p{Pc}].
\s Matches any white-space “abcd defg” -match “\s+”
character. Equivalent to the
Unicode character categories
[\f\n\r\t\v\x85\p{Z}].
\S Matches any non-white-space “abcd defg” -match “\S+”
character. Equivalent to the
Unicode character categories
[^\f\n\r\t\v\x85\p{Z}].
\d Matches any decimal digit. 12345 -match “\d+”
Equivalent to \p{Nd} for
Unicode and [0-9] for non-
Unicode behavior.
\D Matches any nondigit. “abcd” -match “\D+”
Equivalent to \P{Nd} for
Unicode and [^0-9] for non-
Unicode behavior.

PowerShell supports the quantifiers available in .NET regular expressions,
the following are some examples of quantifiers

Format Logic Example
——– ——————————- ———————–
* Specifies zero or more matches; “abc” -match “\w*”
for example, \w* or (abc)*.
Equivalent to {0,}.
+ Matches repeating instances of “xyxyxy” -match “xy+”
the preceding characters
? Specifies zero or one matches; “abc” -match “\w?”
for example, \w? or (abc)?.
Equivalent to {0,1}.
{n} Specifies exactly n matches; “abc” -match “\w{2}”
for example, (pizza){2}.
{n,} Specifies at least n matches; “abc” -match “\w{2,}”
for example, (abc){2,}.
{n,m} Specifies at least n, but no “abc” -match “\w{2,3}”
more than m, matches.

All of the comparisons shown in the above examples in the table
above evaluate to true.

Note that the escape character for regular expressions is different
than that of the PowerShell. The character escape for regular
expressions is the backslash “\”.

SEE ALSO
For information about the match comparison operator, enter the
following command at the PowerShell command prompt:

help about_comparison_operators

See the MSDN Documentation on Regular Expression Language Elements

Leave a Reply

Your email address will not be published. Required fields are marked *