为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用正则表达式在 Python 3 中的特定字符串之后或之前找到一行?

如何使用正则表达式在 Python 3 中的特定字符串之后或之前找到一行?

神不在的星期二 2021-12-17 16:24:20
如何使用正则表达式在python3中的特定字符串之前或之后找到一行?我正在阅读文本文件中的内容,请帮助我文件.txtmy name is dharshinimy mom name is chandramy dad name is udaymy anniversay is on 04/01/1997import rewith 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 dharshinimy dad name is udaymy anniversay is on 04/01/1997
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

尝试使用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:])


查看完整回答
反对 回复 2021-12-17
?
Helenr

TA贡献1780条经验 获得超3个赞

试试这个:


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


查看完整回答
反对 回复 2021-12-17
  • 2 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信