In this tutorial, I will explain how to find a character in a string using PowerShell using various methods with examples.
Find a Character in a String Using PowerShell
Below are a few methods to find a character in a string using PowerShell.
Method 1: Using the .IndexOf() String Method
The .IndexOf() method is the most direct way to find the position of a character in a string. It returns the zero-based index of the first occurrence of the specified character.
Example: Finding the Dash in a US Social Security Number
Suppose you have a string representing a Social Security Number (SSN), such as "123-45-6789", and you want to find the position of the dash (-).
$ssn = "123-45-6789"
$dashPosition = $ssn.IndexOf("-")
Write-Output "The dash is at position: $dashPosition"This code will output 3, since the dash is the fourth character (indexing starts at 0). If the character isn’t found, .IndexOf() returns -1, which is handy for validation.
Here is the exact output in the screenshot below:

Check out PowerShell Convert Secure String to Plain Text
Method 2: Using the .Contains() String Method
If you only need to check whether a character exists in the string (not its position), .Contains() is the simplest method.
Example: Checking for the “@” Symbol in an Email Address
Let’s say you’re validating email addresses for a US-based customer database.
$email = "john.doe@usa.com"
if ($email.Contains("@")) {
Write-Output "Valid email address."
} else {
Write-Output "Invalid email address."
}This approach is fast and readable. It’s perfect for quick validation checks where you don’t care about the character’s exact location.
You can see the exact output in the screenshot below:

Read PowerShell Select-String -AllMatches Examples
Method 3: Using Regular Expressions with -match Operator
Regular expressions are powerful for advanced pattern matching. The -match operator allows you to search for characters or patterns within a string.
Example: Finding a Zip Code in a US Address
Suppose you want to extract the 5-digit ZIP code from an American address.
$address = "1600 Pennsylvania Ave NW, Washington, DC 20500"
if ($address -match "\d{5}") {
Write-Output "ZIP Code found: $($Matches[0])"
}This code finds and outputs 20500. Regular expressions can be tailored for more complex searches, such as phone numbers or custom ID formats.
Method 4: Using Select-String Cmdlet for File and Multi-Line Searches
When searching for a character or pattern across multiple lines or files, Select-String is your best friend. It works like grep in Unix and is ideal for log files or batch processing.
Example: Searching for the “,” Character in a List of US Cities
Suppose you have a text file, cities.txt, containing city and state pairs (e.g., Chicago, IL). You want to find all lines containing a comma.
Select-String -Path "cities.txt" -Pattern ","This command will list all lines with a comma, showing the line number and content. It’s incredibly useful for parsing and analyzing large datasets
Check out PowerShell Select-String with Multiple Patterns Examples
Method 5: Extracting Substrings Using .Substring() After Finding a Character
Often, you’ll want to extract the part of the string before or after a certain character. Combine .IndexOf() with .Substring() for this.
Example: Extracting Area Code from a US Phone Number
For a phone number like (212) 555-1234, let’s extract the area code.
$phone = "(212) 555-1234"
$start = $phone.IndexOf("(") + 1
$end = $phone.IndexOf(")")
$areaCode = $phone.Substring($start, $end - $start)
Write-Output "Area code: $areaCode"This will output 212. This combo is essential for parsing structured US data formats.
Conclusion
In this tutorial, I explained how to find a character in a string using PowerShell using several methods. I’ve shown you how to use .IndexOf(), .Contains(), regular expressions, Select-String, and substring extraction—all with practical examples.
You may also like the following tutorials:
- Concatenate Strings and Floats in PowerShell
- Split a String by Semicolon in PowerShell
- How to Split String by Space in PowerShell
- PowerShell New Line in String
Bijay Kumar is an esteemed author and the mind behind PowerShellFAQs.com, where he shares his extensive knowledge and expertise in PowerShell, with a particular focus on SharePoint projects. Recognized for his contributions to the tech community, Bijay has been honored with the prestigious Microsoft MVP award. With over 15 years of experience in the software industry, he has a rich professional background, having worked with industry giants such as HP and TCS. His insights and guidance have made him a respected figure in the world of software development and administration. Read more.