## about_Regular_Expressions

# SHORT DESCRIPTION

Describes regular expressions in Windows PowerShell.

# LONG DESCRIPTION

Windows PowerShell supports the following 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 you to specify an adjacent character.

[^] Matches any characters except "and" -match "[^brt]nd" those in brackets.

^ Matches the beginning "book" -match "^bo" characters.

$ Matches the end characters. "book" -match "ok$"

Matches any 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.

Windows PowerShell supports the character classes available in Microsoft .NET Framework 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 such as Ll, Nd, Z, IsGreek, and IsBoxDrawing.

\P{name} Matches text not included in 1234 -match "\P{Ll}+" the 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.

Windows PowerShell supports the quantifiers available in .NET Framework regular expressions. The following are some examples of quantifiers.

Format Logic Example

Specifies zero or more matches; "abc" -match "\w" for example, \wor (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 the comparisons shown in the preceding table evaluate to true.

Notice that the escape character for regular expressions, a backslash (), is different from the escape character for Windows PowerShell. The escape character for Windows PowerShell is the backtick character (`)

# (ASCII 96).

For more information, see the "Regular Expression Language Elements" topic in the Microsoft Developer Network (MSDN) library at http://go.microsoft.com/fwlink/?LinkId=133231.