捕获特定关键字和打印输出之间的行



我的输入是一个文本文件示例,它包含多行,如下面的

输入=";启动

开始

程序启动

程序正在进行

暂停

停止">

我想捕获BEGIN和PAUSE之间的行,并将它们作为输出打印出来。

我已经使用regex编写了一段代码,但只有当搜索关键字在同一行时,它才能捕获数据。

我需要帮助来解决这个问题。即使搜索关键字在多行中,也可以搜索和捕获数据。

使用的逻辑

output = re.findall('(?<=BEGIN)(.*?)(?=PAUSE)',re.MULTILINE, input)

没有正则表达式的一种可能方法是使用.split:

#input string
input_ = ''' START
BEGIN
PROGRAM STARTED
PROGRAM IN PROGRESS
PAUSE
STOP'''
#splits on "BEGIN" and gets last part stripped of newlines, so all after "BEGIN"
from_begin = input_.split("BEGIN")[-1].strip("/n")
#splits on "PAUSE" and gets first part stripped of newlines, so all before "PAUSE"
result = from_begin.split("PAUSE")[0].strip("/n")
#print result
print(result)

最新更新