Remove Special Characters from String Python

Any character that isn’t a letter or a number, such as punctuation and whitespace, is considered special. The most common challenge that programmers confront is deleting a character from a string. However, there are situations when the need is far more stringent and calls for the eradication of not just one but a whole list of malevolent characters. These can take the form of special characters that can be used to reconstruct valid passwords and a variety of other applications. When special characters are removed from a string, it is left with merely letters and numbers.

Strings are the most commonly used data type in Python, and when they’re used to their full extent, they cause a plethora of problems. The most typical ones are the new tab escape sequence appended to the end of a string or special characters in place of accent marks. These errors are extremely common while interacting with files. Regardless of what caused the formatting to break, we must be able to remove these characters from the string. Python has various built-in functions for different purposes. In Python, strings are immutable. It means we won’t be able to change its content. We can, however, create a new string with only a few characters from the old one. The original variable can then be assigned to the updated string. It will appear as if the string has been altered, with unwanted characters deleted. We’ll look at a few different methods for deleting special characters from a string in this post.

Example 1:

The first example includes the use of Python isalnum. The Python string method.isalnum() returns True if the alpha-numeric characters are present in the specified string. It returns False if it is not an alpha-numeric character. This can be utilized to append-only alpha-numeric characters to a newly created string by looping over a string. Consider the following example. In the code below, you can see that we’ve created two strings, one of which includes our old string and the other of which is empty. Using the.isalnum() method, we loop through each character in our string and determine whether it is alphanumeric. If that’s the case, we’ll append the character to our string. We don’t do anything if it isn’t.

mytxt = 'python -- is. easy!'

res_txt = ''

for character in mytxt:

if character.isalnum():

res_txt += character


Here is the output, and you can see all special characters are successfully removed.

Example 2:

Now we will delete the special characters from the string using regular expressions. A regular expression is a set of characters with a specific syntax that may be used to match or find other strings or collections of strings. The re module in Python fully supports Perl-style regular expressions. When an error appears while building a regular expression, the re module produces the re.error exception. The regular expressions module in Python, re, contains several helpful string manipulation techniques.

The sub() method lets us add strings with alternative strings, which is one of these strategies. We don’t have to specify the character we want to replace when we use the re library, which is one of the benefits. As a result, we can specify replacement character ranges (or keep). To keep all alphabetic characters and spaces, we can tell the.sub() method to replace everything except [a-zA-Z0-9]. Take a peek at what we’ve accomplished in the code: A variable was created for our string. We utilized the re.sub() method to create our substitute. The function accepts three arguments: (1) the pattern to replace (we used the to indicate that we don’t want to replace anything), (2) the characters to replace, and (3) the string to replace in.

import re

mytxt = 'python -- is. easy!'

res_txt = re.sub(r"[^a-zA-Z0-9 ]", "", mytxt)


Check out the output below of the above code.

Example 3:

Python’s filter() method can delete special characters from a string, similar to a for loop does. The filter() method takes two parameters for the proper execution of the program. You’ll need an iterable and a function to evaluate against to filter. Because the fact that strings are iterable, we may pass in a method to delete special characters. Like the for loop technique, the.isalnum() technique can be utilized to verify whether a substring is alphanumeric or not. Let’s see how this works in Python. A filter object with only alphanumeric characters was created using the filter function in the code below. Our characters are then linked with blank characters using the str.join technique.

import re

mytxt = 'python -- is. easy!'

res_txt = ''.join(filter(str.isalnum, mytxt))


Here you can see that the special characters are removed.


You learned how to delete special characters from a Python string in this post. This was accomplished using the isalphanum() method, the re library of regular expressions, and the filter() method. We have also mentioned examples to achieve this purpose successfully. Working with textual data is becoming increasingly vital; thus, learning how to do this is a valuable skill.

About the author

Kalsoom Bibi

Hello, I am a freelance writer and usually write for Linux and other technology related content