Skip to main content

extract-numbers

PyPI version CI Supported Python Versions Ruff mypy License: MIT Downloads

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)
# => ['100,000']

API

ExtractNumbers(options: dict = None)

Create a new extractor instance with optional config.

.extractNumbers(text: str) -> List[Union[str, int, float]]

Extracts all valid numbers from the given string, based on the configured options.

Examples

Basic Extraction

extractor = ExtractNumbers()

extractor.extractNumbers("3030 results found")
# => ['3030']

extractor.extractNumbers("50 out of 100")
# => ['50', '100']

Negatives

extractor.extractNumbers("Temperature: -15°C, yesterday: -22, before: -20.5")
# => ['-15', '-22', '-20.5']

extractor.extractNumbers("-170,000, -222,987 and -222,987,899.70 respectively.")
# => ['-170,000', '-222,987', '-222,987,899.70']

Commas and Decimals

extractor.extractNumbers("100,000 out of 220,000,000 people")
# => ['100,000', '220,000,000']

extractor.extractNumbers("Your rating is 8.7")
# => ['8.7']

extractor.extractNumbers("Your balance: $100,000.77, previous: $90,899.89")
# => ['100,000.77', '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")
# => [7.7, 3030, 90899232.89, -222987899.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")
# => ['100000000', '-222987899.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")
# => ['1.000.000,77']

ExtractNumbers({ 'european_format': True, 'as_string': False }).extractNumbers("1.000.000,77")
# => [1000000.77]

With remove_commas=True:

ExtractNumbers({ 'european_format': True, 'remove_commas': True }).extractNumbers("1.000.000,77")
# => ['1000000,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

Metadata

Release files for extract-numbers 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for extract-numbers 1.0.2
File Size Uploaded
extract_numbers-1.0.2.tar.gz 6.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for extract-numbers 1.0.2
File Interpreter ABI Platform
extract_numbers-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 13.4 kB

Release files / extract_numbers-1.0.2.tar.gz

Download URL extract_numbers-1.0.2.tar.gz
Size 6.5 kB
Tags Source
SHA-256 checksum
How to use checksums
dfa834321f747ae5a6cc9ea3ccce694db46b36d5ccca6934bb65f4314baf84d2
BLAKE2b-256 checksum
How to use checksums
16875837b7c342d0807bd8520f8c3485ab671fb4e6cf06422b4bdb9827bc739d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.5

Release files / extract_numbers-1.0.2-py3-none-any.whl

Download URL extract_numbers-1.0.2-py3-none-any.whl
Size 6.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1e94a77c3bd37ccfd6a73b26a110ee08c19b62e30fb8e4de8c0be5e4a28bb97e
BLAKE2b-256 checksum
How to use checksums
f4564706fd8b399d2b67c6dc51ea74f2539c9c11cab9b849e2163459f051ea0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.5

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page