Open In App

Python | Remove all characters except letters and numbers

Improve
Improve
Like Article
Like
Save
Share
Report

Given a string, the task is to remove all the characters except numbers and alphabets. String manipulation is a very important task in a day to day coding and web development. Most of the requests and responses in HTTP queries are in the form of Python strings with sometimes some useless data which we need to remove. 

Remove all characters except letters using re.sub 

In this function, we demonstrate the removal of characters that are not alphabets using re.sub.

Python3




import re
 
# initialising string
ini_string = "abcjw:, .@! eiw"
 
# printing initial string
print ("initial string : ", ini_string)
 
result = re.sub('[\W_]+', '', ini_string)
 
# printing final string
print ("final string", result)


Output:

initial string :  abcjw:, .@! eiw
final string abcjweiw

Time complexity: O(n), where n is the length of the input string “ini_string”.

Auxiliary space: O(1), as only a constant amount of extra space is used for storing the final string “result”.

Remove all characters except letters and numbers using  isalpha() and isnumeric() 

Here, this function demonstrates the removal of characters that are not numbers and alphabets using isalpha() and isnumeric().

Python3




import re
 
# initialising string
ini_string = "123abcjw:, .@! eiw"
 
# printing initial string
print ("initial string : ", ini_string)
 
getVals = list([val for val in ini_string
            if val.isalpha() or val.isnumeric()])
 
result = "".join(getVals)
 
# printing final string
print ("final string", result)


Output:

initial string :  123abcjw:, .@! eiw
final string 123abcjweiw

Time Complexity: O(N)

Auxiliary Space: O(N)

Remove all characters except letters using alnum() 

Here, this function demonstrates the removal of characters that do not number using alnum() 

Python3




# initialising string
ini_string = "123:, .@! "
 
# printing initial string
print ("initial string : ", ini_string)
 
getVals = list([val for val in ini_string if val.isalnum()])
result = "".join(getVals)
 
# printing final string
print ("final string", result)


Output:

initial string :  123abcjw:, .@! eiw
final string 123

Time Complexity: O(N)

Auxiliary Space: O(N)

Remove all characters except letters and numbers using a filter and in 

Here, this function demonstrates the removal of characters that are not numbers and alphabets using a filter.

Python3




# initialising string
ini_string = "123abcjw:, .@! eiw"
 
# printing initial string
print ("initial string : ", ini_string)
 
k = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
 
getVals = list(filter(lambda x: x in k, ini_string))
result = "".join(getVals)
 
# printing final string
print ("final string", result)


Output:

initial string :  123abcjw:, .@! eiw
final string 123abcjweiw

Time Complexity: O(N)
Auxiliary Space: O(N)

Remove all characters except letters and numbers using ord() function

Here, this function demonstrates the removal of characters that are not numbers and alphabets using ord() function.

Python3




# initialising string
ini_string = "123abcjw:, .@! eiw"
 
# printing initial string
print ("initial string : ", ini_string)
s=""
for i in ini_string:
    if ord(i) in range(48,58) or ord(i) in range(65,91) or ord(i) in range(97,123):
        s+=i
# printing final string
print ("final string", s)


Output

initial string :  123abcjw:, .@! eiw
final string 123abcjweiw

Time Complexity: O(N)
Auxiliary Space: O(N)

Remove all characters except letters and numbers Using operator.countOf() method

Python3




import operator as op
# create a string of allowed characters
allowed_chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
# initialising string
ini_string = "123abcjw:, .@! eiw"
 
# printing initial string
print("initial string : ", ini_string)
s = ""
for i in ini_string:
    if op.countOf(allowed_chars, i) > 0:
        s += i
# printing final string
print("final string", s)


Output

initial string :  123abcjw:, .@! eiw
final string 123abcjweiw

Time Complexity: O(N)
Auxiliary Space : O(N)

Remove all characters except letters and numbers Using Numpy

  • Initialize the input string ini_string.
  • Convert the input string to a numpy chararray object char_array.
  • Extract only alphanumeric characters from char_array using numpy.char.isalnum() and store them in a new numpy array alphanumeric_chars.
  • Convert alphanumeric_chars to a string using decode().
  • Print the final string result.

Python3




import numpy as np
  
# initialising string
ini_string = "123abcjw:, .@! eiw"
  
# printing initial string
print ("initial string : ", ini_string)
  
# create a char array from input string
char_array = np.fromiter(ini_string, dtype='U1', count=len(ini_string))
  
# extact alphanumeric characters
alphanumeric_chars = char_array[np.char.isalnum(char_array)]
  
# join alphanumeric characters into a string
result = ''.join(alphanumeric_chars)
  
# printing final string
print ("final string", result)


Output:
initial string : 123abcjw:, .@! eiw
final string 123abcjweiw

Time Complexity: O(n), where n is the length of the input string ini_string.
Auxiliary Space: O(n), as we are creating a numpy chararray object char_array and a numpy array alphanumeric_chars of the same size as char_array. Additionally, we are also creating a new string result of size n.



Last Updated : 28 Aug, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads