[英]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]
从Start
和End
行剥离。
您还可以修改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.