使用索引位置列表搜索字符串

时间:2019-05-30 20:35:49

标签: python string list

我正在使用Python从网络抓取的数据中搜索大型无格式文本文件中以特定术语开头的段落。

我可以使用下面的代码获取位置和字符串,但是对于“ value”的每个实例,它都会返回“ value”的每个实例

    for file_name in file_list: #going through multiple docs
    with open(file_name, 'r') as text:
            search = mmap.mmap(text.fileno(), 0, access=mmap.ACCESS_READ)
            for match in re.finditer(br'(\bvalue)', search, re.IGNORECASE): #looking for the word "value"
                    print(file_name + ',')
                    m = re.finditer(br'(\bvalue)', search, re.IGNORECASE)
                    locs = [(m.start(0),m.end(0)+100) for m in re.finditer(br'(\bvalue)', search, re.IGNORECASE)] #+100 returns additional text after searched word
                    for item in locs:
                            print([(item[0]),(item[1])])
                            print(',')
                            print(search[(item[0]):(item[1])])
                            print('\n')
                    else:
                            print(file_name + ',' + '[null, null]' + ',' + 'false')
                            print('\n')

当我尝试其他循环技术时,似乎破坏了([(item[0]),(item[1])])调用工作的能力。相反,我在“ value”的每个实例中都重复了“ value”的每个实例,因此有很多重复的结果。

我想要的最终结果是:

  1. 短语的开始和结束位置(又称字符索引)
  2. 基于列表中数字的字符串切片
  3. 如果文件没有搜索项,则返回null + false值

谢谢您的帮助!

0 个答案:

没有答案