Python Regex - Get List of all Numbers in String


Python Regex - Get List of All Numbers from String

To extract all the numbers in a string as a list, use the regular expression '[0-9]+' with the re.findall() method. Here's how the regex works:

  • [0-9]: Matches a single digit from 0 to 9.
  • [0-9]+: Matches one or more continuous digits (a number).

re.findall() returns a list of all matches found in the string. If no matches are found, it returns an empty list.

numbers = re.findall('[0-9]+', str)

Here, str is the input string from which numbers will be extracted.


Examples

1. Extract all numbers from a string

In this example, we extract numbers from the string 'We live at 9-162 Malibeu. My phone number is 666688888.'.

Python Program

import re

str = 'We live at 9-162 Malibeu. My phone number is 666688888.'
# Extract numbers using regex
numbers = re.findall('[0-9]+', str)
print(numbers)

Explanation:

  1. The string str contains the text from which numbers need to be extracted.
  2. The regex pattern '[0-9]+' matches all sequences of one or more digits in the string.
  3. re.findall() finds all matches and returns them as a list of strings.
  4. The extracted numbers are printed as ['9', '162', '666688888'].

Output

['9', '162', '666688888']

2. Extract numbers from a string with varying contexts

We extract numbers from the string 'We four guys live at 2nd street of Malibeu. I had a cash of $248 in my pocket. I got a ticket with serial number 88796451-52.'.

Python Program

import re

str = 'We four guys live at 2nd street of Malibeu. I had a cash of $248 in my pocket. I got a ticket with serial number 88796451-52.'
# Extract numbers using regex
numbers = re.findall('[0-9]+', str)
print(numbers)

Explanation:

  1. The regex pattern '[0-9]+' matches any sequence of digits.
  2. It extracts '2' (from '2nd'), '248', '88796451', and '52' as separate numbers.
  3. re.findall() returns the list ['2', '248', '88796451', '52'].

Output

['2', '248', '88796451', '52']

3. Extract floating-point numbers

We extract both integers and floating-point numbers from the string 'The price is 123.45 and the discount is 20.5%.'.

Python Program

import re

str = 'The price is 123.45 and the discount is 20.5%.'
# Extract floating-point numbers using regex
numbers = re.findall('[0-9]*\.[0-9]+|[0-9]+', str)
print(numbers)

Explanation:

  1. The regex '[0-9]*\.[0-9]+|[0-9]+' matches floating-point numbers and integers.
  2. [0-9]*\.[0-9]+: Matches numbers with a decimal point (e.g., '123.45', '20.5').
  3. [0-9]+: Matches integers.
  4. All matches are returned as ['123.45', '20.5'].

Output

['123.45', '20.5']

4. Extract numbers with negative values

We extract numbers, including negative values, from the string 'The temperature ranges from -10 to 25 degrees.'.

Python Program

import re

str = 'The temperature ranges from -10 to 25 degrees.'
# Extract numbers including negatives using regex
numbers = re.findall('-?[0-9]+', str)
print(numbers)

Explanation:

  1. The regex '-?[0-9]+' matches numbers with an optional leading minus sign.
  2. The extracted numbers include '-10' and '25'.
  3. All matches are returned as ['-10', '25'].

Output

['-10', '25']

5. Extract numbers with units (advanced)

We extract numbers along with their units from the string 'The package weighs 2kg and the distance is 10m.'.

Python Program

import re

str = 'The package weighs 2kg and the distance is 10m.'
# Extract numbers with units using regex
numbers_with_units = re.findall('[0-9]+[a-zA-Z]+', str)
print(numbers_with_units)

Explanation:

  1. The regex '[0-9]+[a-zA-Z]+' matches numbers followed by letters (e.g., '2kg', '10m').
  2. All matches are returned as ['2kg', '10m'].

Output

['2kg', '10m']

Summary

In this tutorial, we learned how to extract all numbers from a string using Python Regular Expressions. We explored various use cases, such as extracting integers, floating-point numbers, negative numbers, and numbers with units. Using the re.findall() method with appropriate regex patterns makes it easy to handle these scenarios in Python.


Python Libraries