📖 Scenario: You work in a small office where you receive messages from different departments. Each message starts with a keyword like 'Sales', 'HR', or 'IT'. You want to quickly check the type of message and print a response.
🎯 Goal: Create a PowerShell script that uses the match operator to check the message type and print a matching response.
📋 What You'll Learn
Create a variable $message with a specific message string
Create a variable $keyword to hold the first word of the message
Use the match operator to compare $keyword with known departments
Print the correct response based on the matched keyword
💡 Why This Matters
🌍 Real World
This script helps quickly identify message types in office communication for faster processing.
💼 Career
Using the match operator is useful for filtering logs, processing text, and automating responses in IT and administrative jobs.
Progress0 / 4 steps
1
Create the message variable
Create a variable called $message and set it to the string 'Sales: Please send the monthly report.'
PowerShell
Hint
Use = to assign the string to $message.
2
Extract the keyword
Create a variable called $keyword and set it to the first word before the colon in $message using the -split operator.
PowerShell
Hint
Use -split ':' to split the string and take the first part with [0].
3
Use the match operator
Use the match operator to compare $keyword with the strings 'Sales', 'HR', and 'IT'. Assign the result to a variable called $result. Use a single line with the syntax: $keyword -match 'pattern' where 'pattern' matches any of the three keywords.
PowerShell
Hint
Use the pipe | to separate multiple options in the pattern.
4
Print the result
Print 'Match found' if $result is $true, otherwise print 'No match'. Use an if statement.
PowerShell
Hint
Use if ($result) { Write-Output 'Match found' } else { Write-Output 'No match' }.
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
Step 1: Understand the purpose of -match
The -match operator is used to check if a string contains a pattern using regular expressions.
Step 2: Compare with other string operations
Replacing text, splitting strings, or changing case are done by other operators or methods, not -match.
Final Answer:
Checks if a string contains a pattern using regular expressions -> Option D
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
Step 1: Recall correct operator syntax
The correct operator is -match placed between the variable and the pattern.
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.
Final Answer:
$text -match "hello" -> Option A
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
Step 1: Evaluate the match condition
The string "$text" contains the word "fun" so $text -match "fun" returns True.
Step 2: Determine the if statement output
Since the condition is True, the if block returns "Yes".
Final Answer:
Yes -> Option C
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
Step 1: Check the -match usage
The -match operator requires a pattern to match against, but none is provided here.
Step 2: Verify other syntax elements
The variable name and if statement syntax are correct, and quotes around variable are not needed.
Final Answer:
Missing pattern after -match operator -> Option B
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
Step 1: Understand regex OR operator
In regular expressions, the pipe symbol | means OR, so "cat|dog" matches either "cat" or "dog".
Step 2: Evaluate other options
Options A, B, and C do not represent OR in regex and will not match either word correctly.
Final Answer:
"cat|dog" -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.