gpt4 book ai didi

python - 如何提取两个不同匹配项之间的文本?

转载 作者:太空宇宙 更新时间:2023-11-04 11:03:47 26 4
gpt4 key购买 nike

我有一个文本文件,其中包含我需要提取的文本集,如下所示:

ITEM A blah blah blah ITEM B bloo bloo bloo ITEM A blee blee blee ITEM B

这是我目前的工作代码:

finda = r'(Item\sA)'
findb = r'(Item\sB)'
match_a = re.finditer(finda, usefile, 2) # the "2" is a flag to say ignore case
match_b = re.finditer(findb, usefile, 2)

我知道我可以使用 span、start 和 end 等命令来查找匹配项的文本位置。但是我需要多次这样做,所以我需要的是:

  1. 从项目 A 开始写作,在项目 B 停止写作。
  2. 如果第一次迭代的长度少于 50 个字符,则丢弃并移至下一个
  3. 一旦找到以 ITEM A 开头并以 ITEM B 结尾且大于 50 个字符的集合,将其写入文件

提前致谢!我已经旋转了一段时间。

最佳答案

为什么不只是:

with open(fname, 'w') as file:
for match in re.finditer(r'Item A(.+?)Item B', subject, re.I):
s = match.group(1)
if len(s) > 50:
file.write(s)

注意:使用标志的实际数值是相当倾斜的,请使用 re 标志中提供的值。

关于python - 如何提取两个不同匹配项之间的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3095574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com