How to remove all special characters, punctuation and spaces from a string in Python?

Cleaning strings by removing unwanted elements such as special characters, punctuation, and spaces is essential in text processing. These unwanted characters can interfere with data analysis tasks and cause unexpected results.

In this article, we'll explore three effective methods to remove all special characters, punctuation and spaces from strings in Python.

Using Python re Module

The re module provides powerful regular expression support in Python. The re.sub() method accepts a pattern, a replacement string, and a string as parameters, replacing pattern matches with the replacement string.

Syntax

re.sub(pattern, replacement, string)

Example

The pattern [^A-Za-z0-9]+ matches any character that is NOT alphanumeric ?

import re

text = "Welcome #@ !! to Tutorialspoint123"
cleaned = re.sub('[^A-Za-z0-9]+', '', text)
print(cleaned)
WelcometoTutorialspoint123

Using Python str.isalnum() Method

The str.isalnum() method checks whether a character is alphanumeric (letter or digit). Combined with list comprehension, we can filter out unwanted characters efficiently.

Syntax

str.isalnum()

Example

Using list comprehension to filter alphanumeric characters and join() to reconstruct the string ?

text = "Welcome #@ !! to Tutorialspoint2025"
cleaned = ''.join([char for char in text if char.isalnum()])
print(cleaned)
WelcometoTutorialspoint2025

Using Python filter() Function

The filter() function creates an iterator from elements of an iterable for which a function returns True. It provides a functional programming approach to character filtering.

Syntax

filter(function, iterable)

Example

Using filter() with str.isalnum to keep only alphanumeric characters ?

text = "Welcome #@ !! to 20@@25"
cleaned = ''.join(filter(str.isalnum, text))
print(cleaned)
Welcometo2025

Comparison

Method Performance Readability Best For
re.sub() Fast Medium Complex patterns
List comprehension Good High Simple conditions
filter() Good Medium Functional style

Conclusion

Use re.sub() for complex pattern matching, list comprehension for readable simple filtering, and filter() for functional programming style. All methods effectively remove special characters while preserving alphanumeric content.

Updated on: 2026-03-24T16:45:02+05:30

7K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements