Сопоставить имена файлов с предшествующими нулями - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь сопоставить точное совпадение одного файла в папке диспетчера очереди печати с RegEx.По сути, я собираюсь сопоставить один файл с именем * [имя файла] .SPL в% windir% \ spool \ PRINTERS, используя Python.Я подумал, используя динамически сгенерированный RegEx в соответствии с: [соответствует ни одного или много нулей] + [имя файла] .SPL

Попробовал несколько регулярных выражений, но всегда была проблема, что разрыв строки предыдущего файласоответствует также на regex101.com

Формат файла:

02980.SPL
20980.SPL
00011.SPL
00001.SPL

Выражения, которые я придумал:

[\r\n][^1-9]+1.SPL
[^1-9].*1.SPL  

1 Ответ

0 голосов
/ 03 декабря 2018

Вы можете использовать

r'^0*{}\.SPL$'.format(filename)

См. Демо regex онлайн .

Если filename равно 1, шаблон будет выглядеть как ^0*1\.SPL$и будет соответствовать:

  • ^ - начало строки
  • 0* - ноль или более 0 символов
  • 1\.SPL - 1.SPLподстрока
  • $ - конец строки.

См. Python demo :

import re
l = ['02980.SPL','20980.SPL','00011.SPL','00001.SPL']
filename=1
rx = re.compile(r'^0*{}\.SPL$'.format(filename))
print([f for f in l if rx.search(f) ])
# => ['00001.SPL']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...