filter strings per regex in einer Liste

Möchte ich das filtern einer Liste von strings in python mithilfe von regex. In dem folgenden Fall, halten Sie nur die Dateien mit der '.npy' Erweiterung.

Den code, der nicht funktioniert:

import re

files = [ '/a/b/c/la_seg_x005_y003.png',
          '/a/b/c/la_seg_x005_y003.npy',
          '/a/b/c/la_seg_x004_y003.png',
          '/a/b/c/la_seg_x004_y003.npy',
          '/a/b/c/la_seg_x003_y003.png',
          '/a/b/c/la_seg_x003_y003.npy', ]

regex = re.compile(r'_x\d+_y\d+\.npy')

selected_files = filter(regex.match, files)
print(selected_files)

Den gleichen regex funktioniert für mich in Ruby:

selected = files.select { |f| f =~ /_x\d+_y\d+\.npy/ }

Was falsch mit der Python-code?

  • Sie wan-zu-filter-Elemente in files mit der .npy - Erweiterung?
InformationsquelleAutor miluz | 2015-12-06
Schreibe einen Kommentar