Buscador del sufijo común más largo entre líneas
report-final.csv, backup-final.csv y export-final.csv comparten la terminación -final.csv, de 10 caracteres, no solo la extensión .csv. Pegue un valor por línea para comprobar que nombres de archivo, rutas o códigos siguen la misma regla. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- report-final.csv backup-final.csv export-final.csv
- Sufijo
- -final.csv
- Longitud
- 10
- Número de líneas
- 3
El buscador del sufijo común más largo compara cada línea que usted proporciona y devuelve la secuencia exacta de caracteres que todas comparten al final. Resulta útil cuando nombres de archivo, rutas, códigos de producto, etiquetas generadas u otras cadenas parecen seguir la misma convención de terminación. Pegue las líneas como texto sin formato y obtenga un resultado determinista con el sufijo, su longitud en caracteres y el número de líneas examinadas. La herramienta no adivina, reordena ni aplica coincidencias aproximadas.
Encuentre la terminación compartida de una lista
Coloque un valor en cada línea y ejecute el buscador. La herramienta comienza en el último carácter de todas las líneas y retrocede mientras los caracteres sigan siendo idénticos. El resultado es el sufijo exacto más largo, no solo una extensión ni la última palabra.
Por ejemplo, las líneas acabadas en <code>-final.csv</code> comparten toda esa secuencia aunque cada prefijo sea distinto. Si una termina en <code>.csv</code> y otra en <code>. CSV</code>, las mayúsculas no coinciden y no se informa esa extensión como común.
Esta comparación estricta permite auditar reglas de nombres sin ocultar diferencias. Así, un proceso automático puede distinguir una coincidencia real de un sufijo vacío y registrar cuántos valores se compararon. Si usted proporciona una sola línea, toda ella es su sufijo común, pues ninguna otra línea la contradice.
Comprenda los saltos de línea y la comparación
Antes de comparar se normalizan los separadores de Windows, Unix y los retornos de carro antiguos, de modo que el texto copiado de distintos sistemas se comporte igual. Un único salto final se considera el terminador del archivo, no un registro vacío adicional. Las líneas vacías situadas en otros lugares sí se conservan y participan; como no tienen caracteres, hacen que el sufijo compartido quede vacío.
La coincidencia se calcula por punto de código Unicode y no por unidad UTF-16 sin procesar. Por ello, muchos emoji se cuentan como un solo carácter en la longitud devuelta. La comparación continúa siendo literal: no se modifican acentos, formas de normalización, espacios, puntuación ni mayúsculas.
Los espacios finales son caracteres auténticos y afectan al resultado. Si su objetivo es comparar etiquetas por significado y no por representación exacta, limpie o normalice primero el texto de origen.
Use el resultado para validar y automatizar
Un sufijo común es una señal compacta de coherencia en los nombres. En una canalización de publicación, usted puede comparar artefactos y exigir una extensión concreta antes de cargarlos. Durante una migración, puede revisar rutas exportadas para comprobar si todas comparten el mismo directorio final o marcador de formato.
En la preparación de datos, puede aislar un marcador de control o código de proveedor colocado tras un prefijo variable. La capacidad no deduce extensiones, elimina espacios, cambia mayúsculas ni divide por puntuación. Esas decisiones alterarían el origen.
En cambio, ofrece una primitiva determinista que se combina de forma segura con pasos separados de limpieza.
Qué puede hacer con ella
Comprobar extensiones de archivos
Confirme que un lote de nombres comparte la misma extensión literal o un sufijo de versión más largo antes de procesarlo.
Revisar convenciones de identificadores
Descubra un marcador final fijo compartido por códigos de producto, etiquetas de incidencias o identificadores generados externamente.
Comparar rutas exportadas
Detecte un directorio final, nombre de archivo o marcador de formato común en las rutas producidas por una migración.
Preguntas frecuentes
¿Qué ocurre si no hay una terminación compartida?
El sufijo es una cadena vacía y la longitud devuelta es cero.
¿La comparación distingue mayúsculas y minúsculas?
Sí. Se consideran caracteres distintos y la entrada se compara exactamente como usted la proporciona.
¿Un salto final añade una línea vacía?
No. Un único salto final se trata como terminador del archivo; las líneas vacías de otros lugares sí participan.
¿Cómo se cuentan los emoji?
La longitud usa puntos de código Unicode, por lo que muchos emoji cuentan como un carácter aunque JavaScript los almacene en dos unidades UTF-16.
¿Qué obtengo si pego una sola línea?
La línea entera, porque no hay otra que la contradiga. En cuanto añade un segundo valor, el resultado se reduce a los caracteres que ambas líneas comparten al final.
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/str/common-suffix \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"report-final.csv\nbackup-final.csv\nexport-final.csv"}'const res = await fetch("https://api.kit.forhosting.com/str/common-suffix", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "report-final.csv\nbackup-final.csv\nexport-final.csv"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/common-suffix",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "report-final.csv\nbackup-final.csv\nexport-final.csv"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/common-suffix", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"report-final.csv\\nbackup-final.csv\\nexport-final.csv"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"report-final.csv\nbackup-final.csv\nexport-final.csv"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/common-suffix", 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": "report-final.csv\nbackup-final.csv\nexport-final.csv"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.common_suffix",
"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_chars | 1000000 |
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
Encuentre la terminación compartida de una lista
La respuesta incluye <code>suffix</code>, el número de caracteres Unicode en <code>length</code> y <code>line_count</code>.
Use el resultado para validar y automatizar
La API devuelve JSON estructurado: compare <code>suffix</code> con la convención requerida, use <code>length</code> para retirar exactamente esos caracteres con código compatible con Unicode o registre <code>line_count</code> como evidencia del lote. El navegador sirve para comprobaciones rápidas y cada solicitud de API cuesta $0.002 cuando usted automatiza la regla.
Preguntas técnicas
¿Cuánto cuesta una solicitud de API?
Cada solicitud de API cuesta $0.002. La versión del navegador se puede utilizar directamente en esta página.