es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo obtener contenido específico antes y después de una palabra clave usando Regex?

Tengo los datos:


P.C 115 P.B 372 Página 2 de 2

Número de suscriptor 123456
Detalles del servicio Período de facturación
SingleBill Planes de educación-Escuelas Colegio 500Mb 500MO Del 01/11/2021 Al 30/11/2021
IP estática 1 Del 01/11/2021 Al 30/11/2021
Sólo local Del 01/11/2021 Al 30/11/2021
Provisión de línea fija Del 01/11/2021 Al 30/11/2021
Descuentos
Descuento del 100% en el alquiler de la IP estática

Número de suscriptor 763848
Detalles del servicio Período de facturación
SingleBill Planes de educación-Escuelas Colegio 300Mb 200AB Del 01/11/2021 Al 30/11/2021
Provisión de línea fija Del 01/11/2021 Al 30/11/2021


Quiero obtener el “Número de suscriptor” y el “Descuento” correspondiente para cada suscriptor, cuando esté disponible el “Descuento”.
¿Existe alguna forma posible de hacerlo usando Regex?

Estoy utilizando actividades de PDF en UiPath para leer el texto del PDF.

Esa actividad de “Leer PDF” devuelve una Cadena.

Luego, estoy intentando escribir la regex para obtener el Número de suscriptor y la descripción del descuento, para los cuales el descuento es elegible utilizando look ahead y look behind en regex.

Estoy intentando (?<=Número de suscriptor)(.*)(?=\n) y logro capturar el Número de suscriptor, pero no el texto entre el Número de suscriptor y el salto de línea.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para capturar la “Descripción del descuento”, puedes utilizar un enfoque similar con look ahead y look behind en regex. Puedes intentar usar el regex (?<=Discounts\n)(.*)(?=\<br \/="">), que capturará el texto entre “Discounts” y la etiqueta “
    “. Esto debería capturar la “Descripción del descuento” para cada suscriptor donde haya un descuento disponible.

    Tu regex final para capturar tanto el “Número del suscriptor” como la “Descripción del descuento” puede verse así:

    Número del suscriptor\s+(\d+)\n(?:.*\n)*?Descuentos\n(.*)(?=\<br \/="">)

    Explicación del regex anterior:

    • Número del suscriptor\s+(\d+)\n – Esto capturará el “Número del suscriptor” buscando la cadena “Número del suscriptor”, seguida de uno o más espacios en blanco \s+, seguida de uno o más dígitos \d+ y terminando con un carácter de nueva línea \n.
    • (?:.*\n)*? – Esto hará coincidir cualquier texto y caracteres de nueva línea cero o más veces de manera no codiciosa, hasta que se cumpla el siguiente patrón.
    • Descuentos\n – Esto hará coincidir la cadena “Descuentos” seguida de un carácter de nueva línea.
    • (.*)(?=\<br \/="">) – Esto capturará cualquier texto entre “Descuentos” y la etiqueta “
      “.

    Puedes probar este regex en un sitio web de prueba de regex como https://regex101.com/ para asegurarte de que funcione según lo esperado para tus datos.

Comments are closed.