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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

extract_numbers-1.0.2.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

extract_numbers-1.0.2-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file extract_numbers-1.0.2.tar.gz.

File metadata

  • Download URL: extract_numbers-1.0.2.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.5

File hashes

Hashes for extract_numbers-1.0.2.tar.gz
Algorithm Hash digest
SHA256 dfa834321f747ae5a6cc9ea3ccce694db46b36d5ccca6934bb65f4314baf84d2
MD5 85df76cb821a7a192aa174be9e38b5f0
BLAKE2b-256 16875837b7c342d0807bd8520f8c3485ab671fb4e6cf06422b4bdb9827bc739d

See more details on using hashes here.

File details

Details for the file extract_numbers-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for extract_numbers-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1e94a77c3bd37ccfd6a73b26a110ee08c19b62e30fb8e4de8c0be5e4a28bb97e
MD5 d514103bb46533e655e0d8982787b264
BLAKE2b-256 f4564706fd8b399d2b67c6dc51ea74f2539c9c11cab9b849e2163459f051ea0b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 files

1.0.1

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page