繁体   English   中英

无论如何在Regex的搜索function中使用变量?

[英]Is there anyway to use variable in search function of Regex?

我想知道是否有任何方法可以在正则表达式中使用特殊变量并将其与正则表达式代码混合? 这是一个 function,它接受类型和文件夹并搜索其中的所有文件和文件夹以查找具有该类型的所有文件。 当我尝试将它们组合时,错误发生在第 10 行。

def explore(extension,path):
    import os
    import re
    d = dict()
    for dirpath, dirs, files in os.walk(path):
        count = 0
        for filename in files:
            fname = os.path.join(dirpath,filename)
            fname = fname.lower()
            j = ".\"+extension+"$"
            if re.search(j,fname) != None:
                if fname.endswith(extension):
                    count+=1
                    d[dirpath]=count
    print(d)

这里的错误是缺少一个“。当你做”时,这意味着引号只是一个字符。 它不会结束你的字符串。 要消除此错误,您可以通过两种方式进行:

首先 - 在字符串前使用 r。 它将字符串中的字符视为常规字符:

        j = r".\"+extension+"$"

第二 - 使用双斜线。 双斜杠将导致一个常规字符斜杠。

j = ".\\"+extension+"$"

作为补充。 最好使用例如 fstrings 而不是连接字符串。 试试下面的语法:)

print(f"Hello. My name is {your_variable}!")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM