Python Regex,包含扩展和包含字符串的要求

时间:2017-06-29 03:10:09

标签: python regex

我想使用正则表达式监视符合这两个要求的文件(因为我正在使用看门狗RegexMatchingEventHandler):

  1. 必须以.bson.bson.gz(又称扩展要求)结束,例如regexes = ['\.bson.?'],
  2. filename必须包含2017
  3. 我想使用Regex作为字符串输入而不是完整的程序。

    有人可以提供想法吗?

    谢谢,

1 个答案:

答案 0 :(得分:0)

你可以使用这样的正则表达式捕获它们:

regex = r'.*2017.*\.bson(\.gz)?$'

说明:2017年之前和之后的.*匹配任何字符,可以重复任意次数。 (\.gz)?指定.gz是可选的。

演示:

In [2]: fnames = ['sdfa2017sdfa.bson', 'asdf.bson', '2017aa.bson.gz']

In [3]: filtered_files = [f for f in fnames
                          if re.search(r'.*2017.*\.bson(\.gz)?$', f)]

In [4]: filtered_files
Out[4]: ['sdfa2017sdfa.bson', '2017aa.bson.gz']