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