Bird
Raised Fist0
PowerShellscripting~5 mins

match operator in PowerShell

Choose your learning style10 modes available
Introduction
The match operator helps you find if a text contains a certain pattern. It makes searching easy and fast.
Checking if a file name has a specific extension.
Finding if a user input contains a keyword.
Searching logs for error messages.
Filtering a list of names to find those starting with a letter.
Syntax
PowerShell
$string -match $pattern
The operator returns True if the pattern is found, otherwise False.
Patterns use regular expressions, which are like special search rules.
Examples
Checks if 'Hello World' contains 'World'. Returns True.
PowerShell
'Hello World' -match 'World'
Checks if 'apple' starts with 'a'. Returns True.
PowerShell
'apple' -match '^a'
Checks if '123abc' contains one or more digits. Returns True.
PowerShell
'123abc' -match '\d+'
Sample Program
This script checks if the word 'fun' is in the text. It prints a message based on the result.
PowerShell
$text = 'PowerShell is fun'
if ($text -match 'fun') {
    Write-Output 'Pattern found!'
} else {
    Write-Output 'Pattern not found.'
}
OutputSuccess
Important Notes
The match operator is case-insensitive by default.
You can use parentheses to capture parts of the match in the automatic variable $matches.
To do a case-sensitive match, use -cmatch instead.
Summary
The match operator checks if text contains a pattern.
It returns True or False.
It uses regular expressions for flexible searching.

Practice

(1/5)
1. What does the PowerShell -match operator do?
easy
A. Replaces text in a string
B. Converts a string to uppercase
C. Splits a string into an array
D. Checks if a string contains a pattern using regular expressions

Solution

  1. Step 1: Understand the purpose of -match

    The -match operator is used to check if a string contains a pattern using regular expressions.
  2. Step 2: Compare with other string operations

    Replacing text, splitting strings, or changing case are done by other operators or methods, not -match.
  3. Final Answer:

    Checks if a string contains a pattern using regular expressions -> Option D
  4. Quick Check:

    -match checks pattern presence [OK]
Hint: Remember: -match finds patterns, not changes text [OK]
Common Mistakes:
  • Confusing -match with -replace
  • Thinking it splits strings
  • Assuming it changes string case
2. Which of the following is the correct syntax to check if the variable $text contains the word "hello" using the match operator?
easy
A. $text -match "hello"
B. $text match "hello"
C. match $text "hello"
D. $text -matches "hello"

Solution

  1. Step 1: Recall correct operator syntax

    The correct operator is -match placed between the variable and the pattern.
  2. Step 2: Identify correct option

    $text -match "hello" uses $text -match "hello", which is the correct syntax. $text -matches "hello" uses -matches which is invalid.
  3. Final Answer:

    $text -match "hello" -> Option A
  4. Quick Check:

    Correct syntax uses -match between variable and pattern [OK]
Hint: Use -match exactly, no plural or missing dash [OK]
Common Mistakes:
  • Using -matches instead of -match
  • Omitting the dash before match
  • Placing match before the variable
3. What is the output of this PowerShell code?
$text = "PowerShell is fun"
if ($text -match "fun") { "Yes" } else { "No" }
medium
A. No
B. True
C. Yes
D. False

Solution

  1. Step 1: Evaluate the match condition

    The string "$text" contains the word "fun" so $text -match "fun" returns True.
  2. Step 2: Determine the if statement output

    Since the condition is True, the if block returns "Yes".
  3. Final Answer:

    Yes -> Option C
  4. Quick Check:

    Pattern found, output is "Yes" [OK]
Hint: If pattern found, -match returns True [OK]
Common Mistakes:
  • Confusing output with Boolean True/False
  • Assuming output is the matched string
  • Ignoring the if-else structure
4. Identify the error in this PowerShell snippet:
$string = "Hello World"
if ($string -match) { "Match found" } else { "No match" }
medium
A. Variable name is invalid
B. Missing pattern after -match operator
C. Incorrect use of if statement
D. Missing quotes around variable

Solution

  1. Step 1: Check the -match usage

    The -match operator requires a pattern to match against, but none is provided here.
  2. Step 2: Verify other syntax elements

    The variable name and if statement syntax are correct, and quotes around variable are not needed.
  3. Final Answer:

    Missing pattern after -match operator -> Option B
  4. Quick Check:

    -match needs a pattern [OK]
Hint: Always provide a pattern after -match [OK]
Common Mistakes:
  • Leaving out the pattern to match
  • Thinking variable needs quotes
  • Misusing if statement syntax
5. You want to check if a string contains either "cat" or "dog" using -match. Which pattern correctly matches either word?
hard
A. "cat|dog"
B. "cat&dog"
C. "cat,dog"
D. "cat dog"

Solution

  1. Step 1: Understand regex OR operator

    In regular expressions, the pipe symbol | means OR, so "cat|dog" matches either "cat" or "dog".
  2. Step 2: Evaluate other options

    Options A, B, and C do not represent OR in regex and will not match either word correctly.
  3. Final Answer:

    "cat|dog" -> Option A
  4. Quick Check:

    Use | for OR in regex patterns [OK]
Hint: Use pipe | for OR in regex patterns [OK]
Common Mistakes:
  • Using commas or spaces instead of |
  • Using & which means AND in some contexts
  • Not knowing regex syntax for OR
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard