python шар, чтобы соответствовать более широкому диапазону - PullRequest
1 голос
/ 24 января 2020

Попытка сопоставить файлы на диске, которые заканчиваются на .asm, ASM или с некоторым расширением 1/2/3 di git, например - .asm.1 / .asm.11

My python код is-

asmFiles = glob.glob('*.asm') + glob.glob('*.ASM') + glob.glob('*.asm.[0-9]') + glob.glob('*.ASM.[0-9]')

Как мне сопоставить файл '. Asm.11' , поскольку мой код может соответствовать только первым трем?

Спасибо

1 Ответ

0 голосов
/ 24 января 2020

Вот решение с использованием Python регулярных выражений и понимания списка:

import re

files = ['foobar.asm', 'foobar.ASM', 'foobar.asm.1', 'foobar.ASM.11', 'foobarasm.csv']

asm_pattern = '\.(asm|ASM)$|(asm|ASM)\.[1-9]$|\.(asm|ASM)\.[1-9][1-9]$'

asmFiles = [f for f in files if re.search(asm_pattern, f)]

[print(asmFile) for asmFile in asmFiles]

Последний элемент из файлов списка - это крайний случай, о котором я подумал, чтобы проверить шаблон поиска. Он не отображается в результате, как ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...