Open In App

Python | Extract digits from given string

Last Updated : 24 Mar, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

While programming, sometimes, we just require a certain type of data and need to discard other. This type of problem is quite common in Data Science domain, and since Data Science uses Python worldwide, its important to know how to extract specific elements. This article discusses certain ways in which only digit can be extracted. Let’s discuss the same.

Method #1 : Using join() + isdigit() + filter()

This task can be performed using the combination of above functions. The filter function filters the digits detected by the isdigit function and join function performs the task of reconstruction of join function.  

Python3




# Python3 code to demonstrate
# Extract digit string
# using join() + isdigit() + filter()
 
# initializing string
test_string = 'g1eeks4geeks5'
 
# printing original strings 
print("The original string : " + test_string)
 
# using join() + isdigit() + filter()
# Extract digit string
res = ''.join(filter(lambda i: i.isdigit(), test_string))
     
# print result
print("The digits string is : " + str(res))


Output : 

The original string : g1eeks4geeks5
The digits string is : 145

 

 Method #2 : Using re 

The regular expressions can also be used to perform this particular task. We can define the digit type requirement, using “\D”, and only digits are extracted from the string. 

Python3




# Python3 code to demonstrate
# Extract digit string
# using re
import re
 
# initializing string
test_string = 'g1eeks4geeks5'
 
# printing original strings 
print("The original string : " + test_string)
 
# using re
# Extract digit string
res = re.sub("\D", "", test_string)
     
# print result
print("The digits string is : " + str(res))


Output : 

The original string : g1eeks4geeks5
The digits string is : 145

 

Method 3: Using loops:

This task is done by using for loop.

Python3




# Python3 code to demonstrate
# Extract digit string
s="g1eeks4geeks5"
#using for loop
for i in s:
  # using isdigit() function
  if(i.isdigit()):
    print(i,end="")


Output:
The original string : g1eeks4geeks5
The digits string is : 145

Time Complexity: O(n)
Auxiliary Space: O(1)

Method 4: Using recursion:

Python3




# Python3 code to
# Extract digits from string
#using recursion
 
#the function returns digits from string
def ExtractDigits(s,i=0):
    #base case
    if i==len(s):
        return
    #check if s[i] is digit or not
    if s[i].isdigit():
        # if it is digit
        #then print s[i]
        print(s[i], end='')
    i+=1#Increment i
    #calling function recursively
    ExtractDigits(s,i)
#driver code
s="g1eeks4geeks5"
#function call
ExtractDigits(s)
#this code is contributed by Shivesh Kumar Dwivedi


Output

145

Method 5: Using ord() method 

Python3




# Python3 code to demonstrate
# Extract digit string
s="g1eeks4geeks5"
#using for loop
for i in s:
    if ord(i) in range(48,58):
        print(i,end="")


Output

145

Method 6 : Using isnumeric() method

Approach

  1. Initiate a for loop to traverse the string
  2. Check whether the character is numeric by using isnumeric()
  3. Display the character if numeric

Python3




# Python3 code to demonstrate
# Extract digit string
s="g1eeks4geeks5"
#using for loop
for i in s:
    if(i.isnumeric()):
        print(i,end="")


Output

145

Time Complexity : O(N) N – length of string

Auxiliary Space :O(1)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads