Windows与Linux中的正则表达式有什么不同?

时间:2014-06-25 14:25:43

标签: python regex linux python-2.7

我已经为项目编了一些代码,需要匹配文件名的开头。以下是在Windows中运行的代码。

   for root, dirs, files in os.walk(up_path):
    files.sort()
    total_files += len(files)
    print total_files
    for fn in files:
        print fn
        filename_zero, extension = os.path.splitext(fn)
        path2 = os.path.join(root, fn)
        ID = re.match('^/d{1,10}', fn).group()
        print ID

在Windows中,如果文件名为1234567-1.jpg,则打印ID的结果为1234567
但是,在Linux中我得到Nonetype error,其中打印ID返回NONE 我知道这意味着什么,没有匹配,因此没有生成ID 由于唯一的区别是从Windows迁移到Linux,两个系统之间的不同要求是什么? 我怎样才能按预期工作?

1 个答案:

答案 0 :(得分:2)

错误,它不是/d \d,所以你的代码就是,

ID = re.match('^\d{1,10}', fn).group()

\d匹配一个数字,即[0-9]