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.

Expresiones regulares de Python: Captura de archivos de varias líneas basado en una condición.

Tengo un archivo de texto similar al siguiente:

<Start
1;
b;
c;
d;
<End
<Start
2;
b;
c;
d;
<End
<Start
1;
b;
c;
d;
<End

Básicamente, este archivo de texto consta de 3 conjuntos que comienzan con <end.
me gustaría capturar solo los números que tienen “1”. los datos esperados serían los siguientes:

<start
1;
b;
c;
d;
<end
<start
1;
b;
c;
d;
<end

estoy tratando de encontrar una forma de hacerlo a través de python regex, pero hasta ahora no he encontrado ningún método. agradecería si pudiera obtener ayuda de esta comunidad. gracias de antemano. me=”” gustaría=”” capturar=”” solo=”” los=”” números=”” que=”” tienen=”” “1”.=”” los=”” datos=”” esperados=”” serían=”” los=”” siguientes:=”” <start=”” 1;=”” b;=”” c;=”” d;=”” <end=”” <start=”” 1;=”” b;=”” c;=”” d;=”” <end=”” estoy=”” tratando=”” de=”” encontrar=”” una=”” forma=”” de=”” hacerlo=”” a=”” través=”” de=”” python=”” regex,=”” pero=”” hasta=”” ahora=”” no=”” he=”” encontrado=”” ningún=”” método.=”” agradecería=”” si=”” pudiera=”” obtener=”” ayuda=”” de=”” esta=”” comunidad.=”” gracias=”” de=””></end.
me gustaría capturar solo los números que tienen “1”. los datos esperados serían los siguientes:

<start
1;
b;
c;
d;
<end
<start
1;
b;
c;
d;
<end

estoy tratando de encontrar una forma de hacerlo a través de python regex, pero hasta ahora no he encontrado ningún método. agradecería si pudiera obtener ayuda de esta comunidad. gracias de antemano.>

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Puedes utilizar Python Regex para capturar solamente los números que contengan “1” en el archivo de texto. Aquí tienes un ejemplo de cómo hacerlo:

    import re
    
    Abre el archivo de texto
    
    with open('archivo_de_texto.txt', 'r') as f:
        texto = f.read()
    
    Utiliza regex para capturar solo los números que contengan "1"
    
    patrón = re.compile(r'<><end', re.dotall)
    coincidencias = patrón.findall(texto)
    
    imprime las coincidencias
    
    for coincidencia in coincidencias:
        print(coincidencia)
    

    la salida debería ser:

    <start
    1;
    b;
    c;
    d;
    <end
    <start
    1;
    b;
    c;
    d;
    <end re.dotall)=”” coincidencias=”patrón.findall(texto)” imprime=”” las=”” coincidencias=”” for=”” coincidencia=”” in=”” coincidencias:=”” print(coincidencia)=”” “`=”” la=”” salida=”” debería=”” ser:=”” <start=”” 1;=”” b;=”” c;=”” d;=”” <end=”” <start=”” 1;=”” b;=”” c;=”” d;=””></end’, re.dotall)
    coincidencias = patrón.findall(texto)

    imprime las coincidencias

    for coincidencia in coincidencias:
    print(coincidencia)
    “`

    la salida debería ser:

    <start
    1;
    b;
    c;
    d;
    <end
    <start
    1;
    b;
    c;
    d;
    <end>

Comments are closed.