将列表中的字符串转换为re.search的原始字符串

时间:2012-03-24 10:48:15

标签: python regex

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

如果使用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']输入样式。

有没有办法将它们转换并保存到re.search的另一个原始字符串列表中。

1 个答案:

答案 0 :(得分:6)

  1. 不要使用regexen; Python已经有os.path.splitext

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

    如果你必须使用正则表达式,你可以调用re.escape来逃避所有正则表达式元字符。

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