Как найти строку после или перед конкретной строкой в ​​Python 3 с помощью регулярных выражений? - PullRequest
1 голос
/ 27 марта 2019

Как найти строку до или после определенной строки в python3 с помощью регулярных выражений?я читаю содержимое из текстового файла, пожалуйста, помогите мне

file.txt

my name is dharshini
my mom name is chandra
my dad name is uday
my anniversay is on 04/01/1997
import re

with open('file.txt','r') as f:
input_file = f.readlines()

for line in input_file :
 find_line = re.findall(r'(mom)', line)
 print(next-1(line))
 print(next(line))
 print(next(line))

Ожидаемый результат:

my name is dharshini
my dad name is uday
my anniversay is on 04/01/1997

Ответы [ 2 ]

4 голосов
/ 27 марта 2019

Попробуйте использовать enumerate, enumerate получить индекс во время цикла, поэтому я получаю индекс и получаю остальные значения путем индексации и нарезки:

for i,line in enumerate(paragraph):
    if 'mom' in line:
        print(paragraph[:i])
        print(paragraph[i:])

Редактировать:

with open('file.txt','r') as f:
    input_file = f.readlines()
    for i,line in enumerate(input_file):
        line=line.rstrip()
        if 'mom' in line:
            print(paragraph[:i])
            print(paragraph[i:])
1 голос
/ 27 марта 2019

попробуйте это:

import re

paragraph = ["my name is dharshini", "my mom name is chandra", "my dad name is uday" ,  "my anniversay is on 04/01/1997" ]
#set a flag for later
print_next = False
for line in paragraph:
 find_line = re.findall(r'(mom)', line)
 #if mom is found dad will be next
 if print_next:
     print(line)
     print_next = False
 #if mom is found
 if len(find_line) > 0:
     print(line)
     print_next = True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...