In PowerShell, you can use various methods like contains() methods to check if a string contains special characters in PowerShell. Let us check all the methods with examples.
To check if a string contains special characters in PowerShell, you can use the -match operator with a regular expression pattern like [^a-zA-Z0-9], which matches any non-alphanumeric character. For example:
$string = "NewYork@2024"
if ($string -match '[^a-zA-Z0-9]') {
Write-Output "String contains special characters."
} else {
Write-Output "String does not contain special characters."This method efficiently identifies special characters within a string in PowerShell.
Check if a String Contains Special Characters in PowerShell
Let us check a few methods to check if a string contains any special characters in PowerShell.
Method 1: Using Regular Expressions
Regular expressions (regex) are a powerful way to search for patterns within strings. PowerShell supports regex, so it is easy to check for special characters.
Here is a complete example.
$string = "NewYork@2024"
if ($string -match '[^a-zA-Z0-9]') {
Write-Output "String contains special characters."
} else {
Write-Output "String does not contain special characters."
}In this example, [^a-zA-Z0-9] is a regex pattern that matches any character that is not a letter or a digit. The -match operator checks if the string contains any such characters.
I executed the above script; you can see the output in the screenshot below. It shows that the string contains special characters.

Read Split a String by Word in PowerShell
Method 2: Using the Contains Method
The .Contains() method can be used in PowerShell to check for specific characters, but it is not as flexible as regex for checking multiple special characters simultaneously.
Here is a complete PowerShell script.
$string = "Washington#D.C."
$specialChars = "@#$%^&*()"
$containsSpecialChar = $false
foreach ($char in $specialChars.ToCharArray()) {
if ($string.Contains($char)) {
$containsSpecialChar = $true
break
}
}
if ($containsSpecialChar) {
Write-Output "String contains special characters."
} else {
Write-Output "String does not contain special characters."
}In this example, we iterate over a predefined set of special characters and check if any of them are present in the string.
Here, you can see the output, in the screenshot below; I executed the above script using VS code.

Method 3: Using the -like Operator
Here is another method to Check if a String Contains Special Characters in PowerShell.
You can use the -like operator in PowerShell to check for simple pattern matching. While not as powerful as regex, it is useful for quick checks.
Here is an example.
$string = "SanFrancisco$Bay"
if ($string -like "*[!a-zA-Z0-9]*") {
Write-Output "String contains special characters."
} else {
Write-Output "String does not contain special characters."
}Here, *[!a-zA-Z0-9]* is a wildcard pattern that matches any string containing at least one character that is not a letter or a digit.
Read Split String by Tab Character in PowerShell
Method 4: Using Character Classes
PowerShell allows the use of character classes to identify special characters. This method is more readable and easier to maintain.
Here is a complete example.
$string = "LosAngeles&Hollywood"
$specialChars = [char[]]'@#$%^&*()'
$containsSpecialChar = $false
foreach ($char in $specialChars) {
if ($string.IndexOf($char) -ne -1) {
$containsSpecialChar = $true
break
}
}
if ($containsSpecialChar) {
Write-Output "String contains special characters."
} else {
Write-Output "String does not contain special characters."
}Here, we use the IndexOf() method to check if any special character is present in the PowerShell string.
I executed the above PowerShell script, and you can see the output below:

Conclusion
I hope the above-explained methods will help you check if a string contains special characters in PowerShell. The regular expression method is mostly used to check this.
However, you can also use other methods, such as the Contains() Method or the Character Classes, to check if a string contains special characters in PowerShell.
You may also like the following tutorials:
- How to Split a String in PowerShell?
- How to Get Length of a String in PowerShell?
- How to Check if a String Contains a Substring in PowerShell?
- Check if a String Contains Multiple Values in PowerShell
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.