我需要在搜索目录时检查文件扩展名。
如果使用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']的输入方式。
有没有办法将它们转换并保存到另一个原始字符串列表以供研究。
最佳答案
不要使用正则表达式; Python 已经有了
os.path.splitext
.def skip_check(path): return os.path.splitext(path)[1] in extensions
如果您真的必须使用正则表达式,您可以调用
re.escape
转义所有正则表达式元字符。不要将
extension
声明为全局;你没有分配给它所以你不需要。此外,您应该将其称为extensions
。
关于python - 将列表中的字符串转换为原始字符串以供重新搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9851102/