Extract numbers from strings with support for commas, decimals, negatives, and the European format.
Project description
extract-numbers
Extract numbers from strings, with support for commas, decimals, negatives, and the European format.
Installation
pip install extract-numbers
Or if you're installing from source:
pip install -e .
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[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=Trueto support formatting needs. Useas_string=Falseto 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.
Test Coverage
To run tests:
pytest
License
MIT © Talha Awan
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file extract_numbers-1.0.1.tar.gz.
File metadata
- Download URL: extract_numbers-1.0.1.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3dcc455ab0870fcec182a28f97e38e56e5b110a0ce42f5a4a260cfe9b78df99
|
|
| MD5 |
0462fc8edcd272786614d1512c79fad4
|
|
| BLAKE2b-256 |
60555d7ca683c8bed148d758f85854373344d22204e5df5cd951eb9305a08132
|
File details
Details for the file extract_numbers-1.0.1-py3-none-any.whl.
File metadata
- Download URL: extract_numbers-1.0.1-py3-none-any.whl
- Upload date:
- Size: 4.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be1c4d8a89364b60d9480a4e3beae772f171f7824f14e298423bdb4742a3525a
|
|
| MD5 |
ca29ffbfdc758ddcecd378658b1d3665
|
|
| BLAKE2b-256 |
d503106815bfdc0ad7e52898468126894fabed4f2af7978bdeddadc5b69bdf2f
|