
Extract numbers from strings, with support for commas, decimals, negatives, and the European format.
Installation
pip install extract-numbers
Usage
from extract_numbers import ExtractNumbers
extractor = ExtractNumbers()
text = "100,000 results found"
extractor.extractNumbers(text)
API
Create a new extractor instance with optional config.
Extracts all valid numbers from the given string, based on the configured options.
Examples
extractor = ExtractNumbers()
extractor.extractNumbers("3030 results found")
extractor.extractNumbers("50 out of 100")
Negatives
extractor.extractNumbers("Temperature: -15°C, yesterday: -22, before: -20.5")
extractor.extractNumbers("-170,000, -222,987 and -222,987,899.70 respectively.")
Commas and Decimals
extractor.extractNumbers("100,000 out of 220,000,000 people")
extractor.extractNumbers("Your rating is 8.7")
extractor.extractNumbers("Your balance: $100,000.77, previous: $90,899.89")
Options
Type: Object
as_string
Type: bool
Default: True
If set to False
, all numbers are returned as int
or float
types.
ExtractNumbers({ 'as_string': False }).extractNumbers("7.7, 3030, 90,899,232.89 and -222,987,899.9")
remove_commas
Type: bool
Default: False
Works only when as_string=True
.
Removes thousands separators from the returned number strings.
ExtractNumbers({ 'remove_commas': True }).extractNumbers("100,000,000 and -222,987,899.9")
european_format
Type: bool
Default: False
Works only when as_string=True
.
Enables European number formatting (e.g., 1.000.000,99 instead of 1,000,000.99).
ExtractNumbers({ 'european_format': True }).extractNumbers("1.000.000,77")
ExtractNumbers({ 'european_format': True, 'as_string': False }).extractNumbers("1.000.000,77")
With remove_commas=True
:
ExtractNumbers({ 'european_format': True, 'remove_commas': True }).extractNumbers("1.000.000,77")
💡 Note: The decimal comma is preserved for as_string=True
to support formatting needs. Use as_string=False
to convert to a float.
Contributing
Contributions, issues, and feature requests are welcome!
Feel free to:
- Fork the repo
- Create a new branch
- Submit a pull request
If you're fixing a bug or adding a feature, please include a clear description in your PR.
Ensure your changes are covered by tests.
Setup for Local Development
Install dev dependencies:
pip install .[dev]
OR
pip install '.[dev]'
Run the full validation suite (formatting, type checking, and tests):
make validate
Other Packages
License
MIT © Talha Awan