PowerShell : Regular Expressions

 

A regular expression is a pattern used to match or find other strings or sets of strings, using a specialized syntax held in a pattern.

They can be made up of literal characters, operators, and other constructs.

They can be used to search, edit, or manipulate text and data.

Regular expression meta-character syntax available in PowerShell

^ Matches the beginning of the line.
$ Matches the end of the line.
. Matches any single character except a newline. Using m option allows it to match the newline as well.
[…] Matches any single character in brackets.
[^…] Matches any single character not in brackets.
a| b Matches either a or b.
re* Matches 0 or more occurrences of the preceding expression.
re+ Matches 1 or more of the previous thing.
re? Matches 0 or 1 occurrence of the preceding expression.
re{n} Matches exactly n number of occurrences of the preceding expression.
re{n,} Matches n or more occurrences of the preceding expression.
re{ n, m} Matches at least n and at most m occurrences of the preceding expression.
(re) Groups regular expressions and remembers the matched text.
(?: re) Groups regular expressions without remembering the matched text.
( ?> re) Matches the independent pattern without backtracking.
\w Matches the word characters.
\W Matches the nonword characters.
\s Matches the whitespace. Equivalent to [\t\n\r\f].
\S Matches the nonwhitespace.
\d Matches the digits. Equivalent to [0-9]
\D Matches the nondigits.
\A Matches the beginning of the string.
\Z Matches the end of the string. If a newline exists, it matches just before a newline.
\z Matches the end of the string.
\G Matches the point where the last match finished.
\n Back-reference to capture group number “n”.
\b Matches the word boundaries when outside the brackets. Matches the backspace (0x08) when inside the brackets.
\B Matches the nonword boundaries.
\n, \t Matches newlines, carriage returns, tabs, etc.
\Q Escape (quote) all characters up to \E.
\E Ends quoting begun with \Q.

 

-match

With the -match operator, you can quickly check if a regular expression matches part of a string.

"book" -match "oo"

-replace

The -replace operator uses a regular expression to search-and-replace through a string.

'book' -replace 'o', 'ab'
bababk