【发布时间】:2020-06-24 23:42:37
【问题描述】:
我试图在第二次出现特定单词之后提取文本文件的一部分,直到再次出现另一个特定单词为止。原因是在目录中首先说明了这两个词。因此,当我运行代码时,第一次出现的输出为 0。
示例文本:
目录
项目 1a.风险因素
- 没有任何文字(不需要的部分)
项目 1b
目录结束
主要内容
第 1a 项。风险因素
- 文本(需要的部分)
- 文本(需要的部分)
- 文本(需要的部分)
项目 1b
我需要在第 1a 项的第二次出现之间提取文本。风险因素和第 1b 项的第二次出现。
我的代码如下:
for file in tqdm(files):
with open(file, encoding='ISO-8859-1') as f:
for line in f:
if line.strip() == 'Item 1A.Risk Factors':
break
for line in f:
if line.strip() == 'Item 1B':
break
f=open(os.path.join('QTR4_Risk_Factors',
os.path.basename(file)) , 'w')
f.write(line)
f.close()
【问题讨论】:
-
是否要返回第二次出现
Item 1a. Risk Factors之后和Item 1a. Risk Factors之后第一次 出现Item 1b之前的文本?如果是这样,那不是你要求的。在您的示例中,第一个Item 1b在第一次出现Item 1a. Risk Factors之前,但如果Item 1b没有在Item 1a. Risk Factors之前,我们将在Item 1a. Risk Factors之后寻找第二次出现Item 1b。 -
我只想提取第二次出现的 Item1A 和第二次出现的 Item 1B 之间的文本部分。
-
如果
Item 1b的第二个实例出现在Item 1a的第一个实例之前,您希望返回一个空字符串(或某种失败)。你选择的答案是这样吗?
标签: python regex text extract analysis