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 [tnrf].
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