Extraer @menciones de texto
Pegue cualquier texto y reciba cada @mención una sola vez, en el orden en que apareció: una nota que nombra a @Ada, @Linus y @ADA da @Ada y @Linus, y team@example.com queda fuera. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Extraiga @menciones de mensajes, comentarios, documentos y conversaciones exportadas sin programar un analizador propio. La capacidad examina texto plano, devuelve una sola vez cada mención válida y conserva tanto la grafía como el orden de su primera aparición. Los nombres duplicados se comparan sin distinguir mayúsculas de minúsculas, por lo que @Alex y @ALEX generan un único resultado. Admite nombres escritos con letras y números Unicode, ignora los dominios de correo electrónico y devuelve una lista de menciones vacía cuando el texto no contiene tokens coincidentes.
Convierta texto conversacional en una lista fiable de menciones
Las publicaciones sociales, las notas de proyectos, las transcripciones de soporte y las exportaciones de comunidades suelen mezclar nombres de usuario con frases normales. Copiarlos manualmente es lento, y buscar sin más el signo de arroba puede recoger direcciones de correo o fragmentos incorrectos. Este extractor recorre el texto de izquierda a derecha de forma determinista y devuelve un array limpio de menciones, listo para el siguiente paso de una aplicación.
Un token empieza por @ y continúa con letras, números o guiones bajos Unicode. El carácter anterior a la arroba debe ser un límite real, no otro carácter de nombre ni otra arroba. Así, «consulte a @Mina_7» produce una mención, mientras que el dominio de «equipo@example.com» no se confunde con un usuario.
La puntuación posterior termina el token. El resultado respeta el orden original y, si no hay coincidencias, contiene una lista vacía en vez de un error o un valor de relleno.
Comprenda la deduplicación sin distinguir mayúsculas
Una misma persona puede aparecer varias veces con distintas mayúsculas, especialmente cuando el contenido procede de varios sistemas. Esta capacidad compara los tokens sin distinguir el uso de mayúsculas, de modo que @River, @RIVER y @river cuentan como una sola mención. Conserva exactamente la primera forma encontrada en vez de convertir todos los resultados a minúsculas.
Así, los procesos posteriores reciben una lista deduplicada y las interfaces mantienen la grafía original. También se conserva el orden de la primera aparición: las repeticiones posteriores no desplazan ningún elemento. La comparación abarca el token completo, incluida la arroba inicial, y los guiones bajos y números forman parte significativa del nombre.
El algoritmo no usa red ni modelos probabilísticos. Solo extrae sintaxis: no afirma que una cuenta exista, no abre perfiles ni decide si nombres diferentes pertenecen a una misma persona.
Aplique reglas de token claras en sus automatizaciones
Para obtener integraciones predecibles, envíe un objeto con una cadena de texto que no supere el límite publicado. El texto vacío es válido y devuelve una lista vacía. Se admiten letras y caracteres numéricos Unicode.
El extractor se detiene ante espacios, signos de puntuación, guiones y otros símbolos distintos de letras, números o guiones bajos. Tampoco inicia un token justo después de una letra, un número, un guion bajo u otra arroba; esta regla evita resultados engañosos procedentes de correos y marcadores dobles. Utilice el array para enrutamiento, moderación, preparación de avisos, análisis o indexación, y valide aparte los usuarios en la plataforma correspondiente cuando necesite comprobar su existencia.
La implementación pura garantiza el mismo resultado para la misma entrada.
Qué puede hacer con ella
Enrutar mensajes de una comunidad
Extraiga nombres mencionados y únicos antes de asignar una publicación a las personas o equipos responsables de responder.
Limpiar conversaciones exportadas
Cree una lista según la primera aparición en registros de chat sin recoger dominios de direcciones de correo electrónico.
Indexar menciones para analizarlas
Convierta comentarios libres en arrays estables para contar, filtrar o combinar con datos de una plataforma.
Preguntas frecuentes
¿Qué caracteres puede contener una mención?
Después de @, puede contener letras y números Unicode, además de guiones bajos. Cualquier otro carácter termina el token.
¿Cómo se tratan las menciones duplicadas?
Se comparan sin distinguir mayúsculas de minúsculas. Se conservan la primera grafía y el orden de aparición.
¿Extrae partes de direcciones de correo electrónico?
No. Una mención no puede comenzar justo después de una letra, un número, un guion bajo u otra arroba, lo que excluye los dominios habituales.
¿Qué ocurre si no hay menciones?
La capacidad finaliza correctamente y devuelve una lista de menciones vacía.
¿Comprueba si existe el nombre de usuario?
No. Solo extrae tokens con forma de mención y no contacta con redes sociales ni directorios de cuentas.
Herramientas relacionadas
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/text/extract-mentions \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Thanks @Ada and @Linus for reviewing this with @ADA."}'const res = await fetch("https://api.kit.forhosting.com/text/extract-mentions", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Thanks @Ada and @Linus for reviewing this with @ADA."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/extract-mentions",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Thanks @Ada and @Linus for reviewing this with @ADA."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/extract-mentions", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Thanks @Ada and @Linus for reviewing this with @ADA."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Thanks @Ada and @Linus for reviewing this with @ADA."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/extract-mentions", 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": "Thanks @Ada and @Linus for reviewing this with @ADA."
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.extract_mentions",
"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.
Límites
max_text_chars | 100000 |
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. |
Notas técnicas
Comprenda la deduplicación sin distinguir mayúsculas
Por ello, @sam, @sam_2 y @sam2 son tres menciones distintas.
Aplique reglas de token claras en sus automatizaciones
La ausencia del campo, los valores que no sean cadenas y las entradas demasiado largas producen un error invalid_input, lo que permite distinguir una solicitud incorrecta de un texto sin menciones. Cada ejecución mediante API cuesta $0.002.