Extraire les nombres d'un texte
Une phrase avec 12.5%, 1,234,567.89, 3 usines, 4200 unités, une marge de -1.5 et 2e3 pièces rend exactement ces 6 nombres, dans l'ordre de lecture et avec les doublons. Collez un rapport ou une note de laboratoire et copiez les chiffres. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Tirer des chiffres d'un paragraphe est une corvée quotidienne pour les analystes, les étudiants, les journalistes et quiconque hérite d'un rapport sous forme de prose plutôt que de tableur. Cet outil parcourt votre texte de gauche à droite et liste chaque entier et chaque décimal qu'il trouve, y compris les valeurs signées, le groupement anglais des milliers et la notation scientifique, dans l'ordre d'apparition. Il sert à extraire des quantités de points d'étape, de notes de laboratoire, de factures rédigées en phrases et de résumés de journal des changements, sans ouvrir un tableur ni écrire une expression régulière. Un texte vide ou absent échoue avec une entrée invalide afin que personne n'enregistre une charge utile silencieuse.
Ce qui compte comme nombre et comment les jetons sont lus dans l'ordre
Un nombre dans un texte suivi n'est pas le même objet qu'une cellule de tableur. On écrit 42, 3.14, .75, +2, la valeur -1.5, 1,234.56 et 2e3 dans la même phrase, ainsi que des plages telles que pages 10-20 et des chaînes de version telles que v1.2.3, qui ont l'air numériques mais ne doivent pas se fondre en un seul décimal. Cette capacité parcourt la chaîne une seule fois, de gauche à droite, et conserve chaque jeton qui est un entier ou un décimal selon un ensemble fixe de règles.
Un plus ou un moins initial n'est un signe qu'en début de texte ou après un blanc ou une ponctuation d'ouverture, de sorte qu'un écart de -1.5 est signé tandis que la plage 10-20 produit deux entiers non signés. Le groupement anglais des milliers est accepté lorsque les virgules séparent des groupes d'exactement trois chiffres, donc 1,234,567.89 est une seule valeur. Un décimal commençant par un point, tel que .75, est accepté.
Les exposants scientifiques de la forme e ou E plus un signe optionnel et au moins un chiffre font partie du même jeton. Les suites à plusieurs points qui ressemblent à des versions logicielles ou à des adresses IPv4 sont scindées en composantes entières, de sorte que v1.2.3 devient 1, 2 et 3 plutôt que 1.2 suivi de .3. L'ordre est toujours celui de la première apparition, y compris les doublons, car un rapport qui répète le même chiffre deux fois dit autre chose qu'un dump de valeurs uniques.
Contrat d'entrée, champs de réponse et cas de rejet de la requête
Ne trouver aucun nombre est un succès valide : numbers est un tableau vide et count vaut zéro, résultat honnête d'un paragraphe qui n'a que des mots. Utilisez numbers seul lorsque vous voulez recoller les chiffres dans un document. Utilisez values lorsqu'un script doit additionner, trier ou comparer.
Parce que l'algorithme est de la logique de chaînes pure, les tests d'intégration continue peuvent figer l'objet entier. Gardez les charges utiles à des tailles de document ordinaires plutôt que des dumps de plusieurs mégaoctets ; ce produit est un utilitaire de texte, pas un entrepôt de masse. Le texte source suit les mêmes règles de conservation que les autres éléments parse de KIT.
Cas d’usage
Tirer les chiffres de rapports rédigés
Les analystes collent un paragraphe trimestriel et obtiennent chaque entier et décimal dans l'ordre, y compris les milliers groupés et les pourcentages réduits à leur jeton numérique.
Notes de laboratoire et devoirs
Étudiants et techniciens extraient les valeurs mesurées de notes suivies sans ressaisir chaque lecture dans un tableur à la main.
Questions fréquentes
Comment extraire les nombres d'un texte ?
Le tableau numbers de la réponse liste chaque entier et décimal dans l'ordre de première apparition, et values contient les mêmes jetons sous forme de nombres finis.
Conserve-t-il les décimaux tels que 3.14 et .75 ?
Oui. Entiers, décimaux ordinaires, décimaux à point initial, groupement anglais des milliers et notation scientifique sont tous collectés.
L'outil pour extraire les nombres d'un texte est-il gratuit ?
L'outil du navigateur s'exécute gratuitement sur votre appareil.
Une plage de pages telle que 10-20 devient-elle un nombre négatif ?
Non. Un moins n'est un signe qu'au début ou après un blanc ou une ponctuation d'ouverture, donc 10-20 produit 10 et 20, tandis qu'un écart de -1.5 produit -1.5.
Pourquoi une version comme v1.2.3 donne-t-elle trois nombres distincts ?
Parce qu'une suite à plusieurs points ressemble à une version ou à une adresse, pas à un décimal. Elle est découpée en ses parties entières : v1.2.3 donne 1, 2 et 3 au lieu d'un trompeur 1.2 suivi de .3.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/str/extract-numbers \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Quarterly report: revenue rose 12.5% to $1,234,567.89 after 3 plants shipped 4200 units at -1.5 margin and 2e3 spares."}'const res = await fetch("https://api.kit.forhosting.com/str/extract-numbers", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Quarterly report: revenue rose 12.5% to $1,234,567.89 after 3 plants shipped 4200 units at -1.5 margin and 2e3 spares."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/extract-numbers",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Quarterly report: revenue rose 12.5% to $1,234,567.89 after 3 plants shipped 4200 units at -1.5 margin and 2e3 spares."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/extract-numbers", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Quarterly report: revenue rose 12.5% to $1,234,567.89 after 3 plants shipped 4200 units at -1.5 margin and 2e3 spares."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Quarterly report: revenue rose 12.5% to $1,234,567.89 after 3 plants shipped 4200 units at -1.5 margin and 2e3 spares."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/extract-numbers", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "Quarterly report: revenue rose 12.5% to $1,234,567.89 after 3 plants shipped 4200 units at -1.5 margin and 2e3 spares."
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.extract_numbers",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_chars | 100000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Ce qui compte comme nombre et comment les jetons sont lus dans l'ordre
Les marques monétaires, les signes de pourcentage et les mots d'unité sont des frontières, non une partie du jeton : 12.5% et $42.00 apportent 12.5 et 42.00.
Contrat d'entrée, champs de réponse et cas de rejet de la requête
Envoyez un corps JSON avec le champ chaîne obligatoire text égal à l'échantillon non vide que vous souhaitez analyser. Les alias input, value, s, content, body et string sont acceptés lorsque d'anciens clients ou des générateurs de formulaires utilisent ces noms. Un text manquant, une valeur non chaîne, une chaîne de longueur nulle ou une chaîne uniquement composée d'espaces lèvent invalid_input avec un message qui nomme le problème, et ces échecs ne sont pas facturés sur l'API prépayée. La longueur est plafonnée à cent mille caractères afin de borner l'analyse dans le navigateur et le Worker ; un dépassement est aussi invalid_input. En cas de succès, la réponse inclut numbers comme liste ordonnée de jetons de surface afin que 1,234.50 et 007 restent lisibles, values comme les mêmes jetons analysés en nombres IEEE finis sans virgules de groupement, count comme longueur partagée, integer_count pour les jetons sans point décimal ni exposant, decimal_count pour ceux qui en ont, original qui répète l'entrée exacte pour les tableaux d'interface, et method toujours extract_numbers afin que le code aval puisse se ramifier sans flairer les formes.
Usage de l'API, tarifs, flux de travail et ce que cet outil n'est pas
Appelez l'outil gratuit dans le navigateur pour extraire les nombres d'un texte lors de devoirs, d'extraits de facture, de carnets de laboratoire et d'audits rapides, sans écrire une expression régulière dans chaque langage. Un flux typique colle un paragraphe trimestriel, liste les chiffres et copie values dans une feuille. Associez ce point d'entrée à un extracteur de montants lorsque l'étape suivante concerne monnaies, taxes et totaux étiquetés, ou à un extracteur de dates lorsque vous avez besoin de dates de calendrier normalisées plutôt que des chiffres bruts d'une chaîne de date. N'attendez pas de cette page qu'elle classifie si un nombre est un prix, une quantité ou une année — c'est une autre intention de recherche, servie par des extracteurs structurés. Utilisez l'API prépayée KIT lorsqu'un CMS, un pipeline de contenu, un harnais QA, une application de tutorat ou un client mobile ont besoin du même contrat sous solde à $0.002 par élément réussi ; les échecs de validation ne consomment jamais le solde après le rejet du moteur. Les auteurs de SDK peuvent documenter text comme seul champ obligatoire, montrer un exemple de succès avec entiers et décimaux mêlés, et un exemple d'erreur de chaîne vide afin que les intégrateurs voient les deux faces du contrat.
Cas d'intégration
Fixtures CI pour analyseurs numériques
Les scripts de construction figent les nombres extraits et les valeurs analysées afin que les régressions de signe, de milliers et de notation scientifique fassent échouer l'intégration continue aussitôt.
Questions techniques
Que se passe-t-il si text est vide ?
La requête échoue avec invalid_input. Une entrée vide ou uniquement composée d'espaces n'est pas admise ; les échecs de validation ne sont pas facturés sur l'API prépayée.