Transformaciones

Cómo extraer un código de barras de un texto con una expresión regular

2026-05-27
Tarea

Un valor de origen contiene una etiqueta y un candidato continuo esperado de 8 o de 12 a 14 dígitos ASCII. Hay que conservarlo como texto, mantener el cero inicial y no extraer una parte de una secuencia numérica más larga.

Respuesta breve

En Transformaciones, añade dos reglas en este orden: primero No es expresión regular con el patrón de protección → No exportar campo; después Expresión regular con el patrón de extracción → Eliminar todo excepto. La primera regla vacía un valor no apto; la segunda conserva el primer candidato que coincide.

Cómo hacerlo en Eofferix

  1. Abre los ajustes de la columna o nodo de salida. El nombre barcode es solo un ejemplo; tu campo puede tener cualquier otro nombre. Conserva el resultado como texto para mantener el cero inicial.

  2. En Transformaciones, añade la regla de protección: Valor actualNo es expresión regular con (^|[^0-9])(?:[0-9]{12,14}|[0-9]{8})([^0-9]|$)No exportar campo.

  3. Justo después, añade la regla de extracción: Valor actualExpresión regular con (?:[0-9]{12,14}|[0-9]{8})Eliminar todo excepto. No inviertas el orden de las dos reglas.

    Dos reglas para extraer de forma segura un candidato de código de barras en Eofferix
    La regla superior vacía un valor sin candidato permitido; la inferior conserva el primer candidato de una longitud admitida.
  4. Aplica las reglas y comprueba en la vista previa los ejemplos de abajo. Después ejecuta una pequeña exportación de prueba y abre el archivo resultante: los valores no aptos deben quedar vacíos y los aptos deben coincidir con el primer candidato encontrado.

Resultado esperado

Valor de origenResultadoMotivo
EAN: 40063813339314006381333931Se encuentra un candidato independiente de 13 dígitos.
barcode 012345678905012345678905Los 12 dígitos se conservan como texto, incluido el cero inicial.
code 1234567812345678Se admite un candidato de 8 dígitos.
1234567890123412345678901234Se admite un candidato de 14 dígitos.
123456789012345vacíoNo deben extraerse 14 dígitos de una secuencia numérica más larga.
ABC-12X34vacíoNo hay ningún candidato continuo de una longitud admitida.
first 12345678 second 400638133393112345678Si coinciden varios candidatos, se conserva el primero.

Qué comprobar antes de exportar

  • Ambos patrones usan dígitos ASCII [0-9] y solo admiten 8 dígitos o entre 12 y 14 dígitos.
  • Los dígitos del candidato deben ser contiguos. Si un proveedor inserta espacios o guiones dentro del código, añade una normalización separada y vuelve a probar los casos límite.
  • Si coinciden varios candidatos, Eliminar todo excepto conserva el primero.
  • Este método solo comprueba el formato y la longitud. No verifica el dígito de control EAN/UPC/GTIN ni confirma que exista un producto con ese código.

Procesa datos más rápido con Eofferix

Crea una cuenta gratis para automatizar catálogos y listas de precios según tus reglas.

Registrarse