regex 在Python中对Excel进行字符串/正则表达式搜索的问题

oogrdqng  于 2022-12-05  发布在  Python
关注(0)|答案(1)|浏览(109)

我是SO的新手,对Python也相对陌生,所以如果这是一个简单的修复或不恰当的问题,我很抱歉。
首先,我的程序一般工作,但我试图实现一些冗余/catchalls,使其健壮。
该程序查看Excel文件的目录(和子目录),单独打开它们,搜索数据(在特定的工作表上),并将其转储到csv。由于每个搜索词都有效地用于列的标题,因此涉及到循环,我希望在此下面有4个值。
我使用正则表达式来定义搜索项。
我编写了一个函数,在Excel工作表中搜索正则表达式的匹配项。工作表的单元格中有字符串和其他格式类型,因此有字符串类型(查询)。

def SearchXLWithRe(regex)
    for i in range(1, Row_limit):         # row limit is defined by OpenPyXL module
        for j in range(1, Column_limit):    # same here for column limit
            query = ws.cell(row = i, column = j).value
            if type(query) == str:         # i only want to look at strings
                if regex.search(query):    # of the responses that are strings, i want to match to the regex
                    return [i,j]

这个函数用于搜索字符串(到目前为止一直是这样)。我想添加冗余,当 * 一些 * excel文件不包含我想搜索的术语,但其他人会(它可能只是返回一些弥补坐标的空白单元格,如1000,1000或其他东西)。
我试过输入一个else,但由于它在Excel文档上循环并查找多个字符串,因此所有返回的都是None。
我想我有一个简单的逻辑问题,但我就是看不出来;如果有人能给我一些指点,我会感激地(和热切地!)接受帮助。
我已经复习过的问题(但我还是不懂):
In Python how should I test if a variable is None, True or False
OpenPyXL + How can I search for content in a cell in Excel, and if the content matches the search criteria update the content?

jdgnovmf

jdgnovmf1#

def SearchXLWithRe(regex)
    for i in range(1, Row_limit):         # row limit is defined by OpenPyXL module
        for j in range(1, Column_limit):    # same here for column limit
            query = ws.cell(row = i, column = j).value
            if type(query) == str:         # i only want to look at strings
                if regex.search(query):    # of the responses that are strings, i want to match to the regex
                    return [i,j]
     return [x,y] #x,y are the dummy locations

在for循环之后返回,只有在没有找到匹配时才会执行。

相关问题