Quite signos de puntuación de un texto en línea
Quitar signos de puntuación transforma texto con ruido en una secuencia limpia de letras, números y espacios en blanco.
Ejecutar — gratis
Elimina comas, puntos, comillas, paréntesis, guiones, signos monetarios, emojis y otros símbolos, pero conserva palabras y cifras de los sistemas de escritura incluidos en Unicode. La operación es determinista, no usa la red ni modelos de lenguaje y mantiene los espacios y saltos de línea originales. Por ello resulta práctica antes de tokenizar, indexar búsquedas, contar frecuencias, eliminar duplicados o comparar textos de forma sencilla.
Qué conserva y qué elimina el limpiador
El limpiador examina el texto carácter Unicode por carácter. Conserva letras, marcas combinatorias que forman caracteres acentuados, números y espacios en blanco. Elimina todo lo demás: comas, puntos, apóstrofos, comillas, dos puntos, punto y coma, paréntesis, barras y guiones, además de signos monetarios, operadores, pictogramas y emojis. Mantiene los espacios, tabulaciones y saltos de línea en su posición original; no los agrupa ni los recorta. Por eso pueden quedar espacios repetidos después de quitar signos contiguos. Es una decisión deliberada, pues normalizar espacios puede alterar posiciones o la estructura del documento. La regla compatible con Unicode también conserva textos que no están en inglés y evita que los nombres con tildes pierdan marcas representadas por separado.
Cómo preparar texto para analizarlo
Pegue o envíe el contenido en el campo text y ejecute la capacidad. La respuesta contiene un único campo text con el resultado filtrado, listo para un tokenizador, una conversión a minúsculas, un contador de palabras o un índice. Decida conscientemente el orden de esos pasos. Al quitar la puntuación antes de dividir, una palabra seguida de coma coincide con la misma palabra sin coma. Los apóstrofos y guiones requieren atención: al eliminarlos, las partes quedan unidas. Si necesita tokens separados, sustituya primero determinados signos por espacios. El algoritmo no detecta idiomas, no corrige ortografía, no translitera, no cambia mayúsculas y no interpreta el contenido. Así, una misma entrada siempre produce exactamente la misma salida.
Cómo usar el resultado en flujos automáticos
Para una limpieza ocasional, el ejecutor del navegador aplica la misma transformación determinista que la API. En una automatización, envíe cada cadena como un elemento y lea el campo text devuelto. Cada solicitud de API cuesta $0.002; no existe un cargo variable porque la unidad declarada es un elemento. Conserve siempre el original cuando la puntuación pueda tener valor semántico. También se eliminan separadores decimales, sintaxis de programación, signos de correo electrónico, separadores de URL y límites de oraciones; por tanto, el resultado es un derivado para análisis y no una copia reversible. La capacidad conserva espacios, pero no los recorta ni agrupa, no elimina diacríticos, no modifica mayúsculas y no garantiza una salida no vacía. Una entrada formada solo por símbolos devuelve correctamente una cadena vacía.
Qué puede hacer con ella
Preparar tokens para un recuento
Elimine signos que harían que una misma palabra apareciera como tokens diferentes en una tabla de frecuencias.
Limpiar valores antes de indexarlos
Cree una representación con letras y números de etiquetas o documentos antes de incorporarlos a un índice sencillo.
Normalizar entradas para compararlas
Quite adornos y puntuación antes de uniformar mayúsculas o espacios en un flujo de coincidencias.
Preguntas frecuentes
¿Qué caracteres se conservan?
Se conservan letras Unicode, marcas combinatorias, números y espacios en blanco; se eliminan la puntuación y los símbolos.
¿Funciona con texto que no esté en inglés?
Sí. El filtro usa categorías Unicode, por lo que mantiene letras y números de los sistemas de escritura compatibles.
¿Elimina emojis y signos monetarios?
Sí. Son símbolos, no letras, números ni espacios, y el contrato estricto exige retirarlos.
¿Agrupa espacios y saltos de línea?
No. Conserva exactamente los espacios existentes. Use otro paso si desea recortarlos o agruparlos.
¿Cuánto cuesta una solicitud de API?
Cada solicitud cuesta $0.002. La misma operación determinista también está disponible en el navegador.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/str/remove-punctuation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world! Room #42 costs $9."}'const res = await fetch("https://api.kit.forhosting.com/str/remove-punctuation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, world! Room #42 costs $9."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/remove-punctuation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, world! Room #42 costs $9."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/remove-punctuation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, world! Room #42 costs $9."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, world! Room #42 costs $9."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/remove-punctuation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "Hello, world! Room #42 costs $9."
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.remove_punctuation",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |