Regular Expressions

    PowerShell – Writing Regular Expressions

    A regular expression is a string, written using a special regular expression language, that helps a computer identify strings that are of a particular format—such as an IP address, a UNC, or an e-mail address. A well-written regular expression has the ability to allow a Windows PowerShell script to accept as valid or reject as invalid data that does not conform to the format you’ve specified.
    The Windows PowerShell –match operator compares a string to a regular expression and then returns either True or False depending on whether the string matches the regex.
    Here is an example of a simple match
    PS C:\> "WinAdmin.org" -match "WIn"
    True
    PS C:\> "WinAdmin.org" -match "windows"
    False

    By default, a regex is case-insensitive in PowerShell. But if you want to match case sensitive, you can use -cmatch

    PS C:\> "WinAdmin.org" -cmatch "admin"
    False
    PS C:\> "WinAdmin.org" -cmatch "Admin"
    True

    Regular Expressions – Wildcards and Repeaters

    A regex can contain a few wildcard characters.

    . (period) – matches one instance of any character

    ? (question mark) – matches zero or one instance of any character

    * matches zero or more of the specified characters

    + matches one or more of the specified characters.

    PS C:\> "hello" -match "h.llo"
    True
    PS C:\> "hello" -match "h?ello"
    True
    PS C:\> "hello" -match "h?llo"
    True
    PS C:\> "hello" -match "h*o"
    True
    PS C:\> "hello" -match "hel+o"
    True

    Regular Expressions – Character Classes

    • \w matches any word character, meaning letters and numbers.
    • \s matches any white space character, such as tabs, spaces, and so forth.
    • \d matches any digit character.
    PS C:\> "Windows Server" -match "\w"
    True
    PS C:\> "Windows Server" -match "\w\s\w"
    True
    PS C:\> "Windows Server" -match "\d"
    False
    PS C:\> "Windows Server 2016" -match "\d"
    True

    Regular Expressions – Character Groups, Ranges, and Sizes

    A regex can also contain groups or ranges of characters, enclosed in square brackets. For example, [aeiou] means that any one of the included characters—a, e, i, o, or u—is an acceptable match. [a-zA-Z] indicates that any letter in the range a-z or A-Z is acceptable

    PS C:\> "Windows" -match "Win[def]ows"
    True

    Creating a regular expression to check IP.

    PS C:\> "192.168.0.1" -match "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
    True
    PS C:\> "192.168.0.A" -match "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
    False

     


    © 2020 WinAdmin.org, All Rights Reserved.

    We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.