这将读入文件名并使用regex检查正确的格式。问题是连字符可能并不总是存在,因此re.split()
可能会产生一个不可预测的结果,这使得以后很难“重建”一个正确的字符串格式,但我不排除这种方法的可能性。split()
的另一个问题是,任何空白都会在之后保留,因此在重建字符串之后,任何好处都会被抵消。所以我尝试了另一个带有finditer()
和另一个findall()
的正则表达式,但仍然只能找到前6位数字。在
以下是正确文件名的示例(不正确的名称有不同的空格):
201308 - (82608) - MAC 2233-007-Methods of Calculus - Klingler, Lee.txt
以下是我一直在尝试的一些方法,我将省去其他的麻烦(围绕它的更大计划):
#res = re.findall(r"[\.\-]",f0)
res = [str(m.group(0)) for m in re.finditer(r'[^\-]', f0)]
if res: print res
else: print "error on %s"%res
s0 = "['@ @ @ @ @ @ @ @ 201308 ', ' (12345)', 'ABC 2233L', '007', 'course Name', 'last, first.txt']"
#s = f0.split('-'); s = s[0]; print "sssss ",s#,type(s)
包含不正确空格的字符串示例如下:
201308-(82609)-MAC 2233-007-Methods of Calculus - Klingler, Lee.txt
主要的目标是接收文件名(任何数量的符号、字母、数字、空白都可能完全错误),并将其转换为正确的格式。由于您不能检查每个可能的错误,所以我尝试使用这些方法至少修复额外(或缺少)空白。在
这是一个简单的原则,规范化任何连字符与数字/非字母数字相邻,或非数字/字母数字相邻。在
相关问题 更多 >
编程相关推荐