Skip to content
Related Articles

Related Articles

Python | Remove punctuation from string

View Discussion
Improve Article
Save Article
  • Difficulty Level : Basic
  • Last Updated : 08 Aug, 2022

Many times while working with Python strings, we have a problem in which we need to remove certain characters from strings. This can have applications in data preprocessing in the Data Science domain and also in day-day programming. Let’s discuss certain ways in which we can perform this task using Python.

Method 1: Remove Punctuation from a String with Translate

The first two arguments for string.translate method is empty strings, and the third input is a Python list of the punctuation that should be removed. This instructs the Python method to eliminate punctuation from a string. This is one of the best ways to strip punctuation from a string.

Python3




import string
 
test_str = 'Gfg, is best: for ! Geeks ;'
 
test_str = test_str.translate
    (str.maketrans('', '', string.punctuation))
print(test_str)

Output:

Gfg is best for  Geeks 

Method 2: Remove Punctuation from a String with Python loop

This is the brute way in which this task can be performed. In this, we check for the punctuations using a raw string that contain punctuations and then we construct a string removing those punctuations.

Python3




# initializing string
test_str = "Gfg, is best : for ! Geeks ;"
 
# printing original string
print("The original string is : " + test_str)
 
# initializing punctuations string
punc = '''!()-[]{};:'"\,<>./?@#$%^&*_~'''
 
# Removing punctuations in string
# Using loop + punctuation string
for ele in test_str:
    if ele in punc:
        test_str = test_str.replace(ele, "")
 
# printing result
print("The string after punctuation filter : " + test_str)

Output : 

The original string is : Gfg, is best : for ! Geeks ;
The string after punctuation filter : Gfg is best  for  Geeks 

Method 3: Remove Punctuation from a String with regex 

The part of replacing with punctuation can also be performed using regex. In this, we replace all punctuation with an empty string using a certain regex.

Python3




import re
 
# initializing string
test_str = "Gfg, is best : for ! Geeks ;"
 
# printing original string
print("The original string is : " + test_str)
 
# Removing punctuations in string
# Using regex
res = re.sub(r'[^\w\s]', '', test_str)
 
# printing result
print("The string after punctuation filter : " + res)

Output : 

The original string is : Gfg, is best : for ! Geeks ;
The string after punctuation filter : Gfg is best  for  Geeks 

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!