Skip to main content
 首页 » 编程设计

python之将列表中的字符串转换为原始字符串以供重新搜索

2025年05月04日32haluo1

我需要在搜索目录时检查文件扩展名。

如果使用re做匹配工作。那些 '。'被解释为正则表达式“.”

我的代码:

extension = ['.c','.h'] 
path = 'foo\bar\foobar.c' 
 
def skipCheck(path): 
    global extension  
    skip = True 
    for i in extension : 
        if(re.search(i,path)): 
            skip = False 
return skip 

我知道我可以使用反斜杠来做到这一点。

extension = ['\.c','\.h'] 

但是使用和配置都不方便,我想保持['.c','.h']的输入方式。

有没有办法将它们转换并保存到另一个原始字符串列表以供研究。

请您参考如下方法:

  1. 不要使用正则表达式; Python 已经有了 os.path.splitext .

    def skip_check(path): 
        return os.path.splitext(path)[1] in extensions 
    

    如果您真的必须使用正则表达式,您可以调用re.escape转义所有正则表达式元字符。

  2. 不要将 extension 声明为全局;你没有分配给它所以你不需要。此外,您应该将其称为extensions。