繁体   English   中英

提取两个关键字之间可用的文本并将该文本存储到 python 中的列表中

[英]Extract text available between two keywords and store that text into a list in python

在我的文本文件中,我有以下内容:

fdsjhgjhg

fdshkjhk

开始

早上好

你好世界

结尾

破折号

天天快报

我应该怎么办我想提取单词“开始”和“结束”之间的可用文本并存储在list

这是一种方法:

text = '''fdshkjhk
Start
Good Morning
Hello World
End
dashjkhjk
'''
m = re.search(r"Start.*End", text, re.S)
if m is not None:
    print(m[0].split("\n")[1:-1])

下标[1:-1]StartEnd行剥离。

您还可以修改re以仅捕获两者之间的部分; 假设Start后面紧跟一个换行符,而End紧跟一个换行符:

m = re.search(r"Start\n(.*)\nEnd", text, re.S)
if m is not None:
    print(m[1].split("\n"))

这里我们使用m[1]来获取捕获的文本。

查看应该可以解决您的问题的答案。 a_text.txt文件包含您的文本数据。 为了测试目的,我又添加了两行。

ttp_template = """
Start {{ _start_ }}
{{line1 | _line_ }}
End {{ _end_ }}
"""

from ttp import ttp
import json

def text_parser(data_to_parse): 
    parser = ttp(data=data_to_parse, template=ttp_template)
    parser.parse()

    # print result in JSON format
    results = parser.result(format='json')[0]
    #print(results)

    #print(results)

    #converting str to json. 
    result = json.loads(results)

    return(result)

with open("a_text.txt") as f:
    data_to_parse = f.read()

print(text_parser(data_to_parse))

请看下面的output:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM