# Python | Extract digits from given string

Last Updated : 24 Mar, 2023

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)

Previous
Next