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.

Obteniendo los mismos grupos de expresiones regulares dentro de un bloque de texto.

Estoy intentando escribir un patrón para obtener cada grupo de CPNJ dentro de este bloque de texto, pero la condición es que necesita empezar con executados: y terminar con un grupo de CNPJ. Pero mi patrón siempre obtiene el último grupo, no sé qué debo hacer para que funcione.

La respuesta https://stackoverflow.com/questions/69636185/getting-specific-groups-of-patterns-inside-a-block-text no funciona.

Patrón: (?:executados\:)[\p{L}\s\D\d]+CNPJ\W+(?P<cnpj>\d+\.\d+\.\d+\/\d+-\d+)

Cadena para probar:

Dados dos executados:
1. FOO TEST STRING LTDA., CNPJ: 88.888.888/8888-88,
2. ANOTHER TEST STRING LTDA LTDA LTDA - ME, CNPJ: 99.999.999/9999-99,
3. FOO TEST STRING LTDA., CPF: 999.999.999-99,
4. FOO TEST STRING LTDA., CPF: 999.999.999-99.
Como medida de economia e celeridade processuais, atribuo a

Me gustaría obtener los valores {'cnpj': ['88.888.888/8888-88', '99.999.999/9999-99']}, de esta manera se obtiene solo el último.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El patrón actual no está funcionando como se esperaba. Para obtener cada grupo CNPJ dentro del bloque de texto que comienza con executados: y termina con un grupo CNPJ, se puede utilizar el siguiente patrón:

    executados:(?:(?!CNPJ)[\s\S])+CNPJ\W+(?P<cnpj>\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2})
    

    Este patrón utiliza una búsqueda negativa anticipada para asegurarse de que el patrón no coincida con el final del bloque antes del siguiente grupo CNPJ. El grupo CNPJ se coincide como antes con el grupo con nombre cnpj.

    Con la cadena de prueba dada, este patrón devolverá el resultado esperado:

    {'cnpj': ['88.888.888/8888-88', '99.999.999/9999-99']}

Comments are closed.