我需要在搜索目录时检查文件扩展名.
如果使用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
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用反斜杠来做到这一点.
extension = ['\.c','\.h']
Run Code Online (Sandbox Code Playgroud)
但它不容易使用和配置.我想保持['.c','.h']输入样式.
有没有办法将它们转换并保存到re.search的另一个原始字符串列表中.
不要使用regexen; Python已经有了os.path.splitext.
def skip_check(path):
return os.path.splitext(path)[1] in extensions
Run Code Online (Sandbox Code Playgroud)
如果你真的必须使用正则表达式,你可以调用re.escape以逃避所有正则表达式元字符.
不要宣布extension全球; 你没有分配它,所以你不需要.另外,你应该打电话给它extensions.
| 归档时间: |
|
| 查看次数: |
621 次 |
| 最近记录: |