Проходя одну из проблем в Python Challenge , я пытаюсь решить ее следующим образом:
Прочитать ввод в текстовом файле с символами следующим образом:
DQheAbsaMLjTmAOKmNsLziVMenFxQdATQIjItwtyCHyeMwQTNxbbLXWZnGmDqHhXnLHfEyvzxMhSXzd
BEBaxeaPgQPttvqRvxHPEOUtIsttPDeeuGFgmDkKQcEYjuSuiGROGfYpzkQgvcCDBKrcYwHFlvPzDMEk
MyuPxvGtgSvWgrybKOnbEGhqHUXHhnyjFwSfTfaiWtAOMBZEScsOSumwPssjCPlLbLsPIGffDLpZzMKz
jarrjufhgxdrzywWosrblPRasvRUpZLaUbtDHGZQtvZOvHeVSTBHpitDllUljVvWrwvhpnVzeWVYhMPs
kMVcdeHzFZxTWocGvaKhhcnozRSbWsIEhpeNfJaRjLwWCvKfTLhuVsJczIYFPCyrOJxOPkXhVuCqCUgE
luwLBCmqPwDvUPuBRrJZhfEXHXSBvljqJVVfEGRUWRSHPeKUJCpMpIsrV.......
Мне нужно пройти через этот текстовый файл и выбрать все строчные буквы, которые заключены только в три заглавные буквы с каждой стороны.
Сценарий python, который я написал для выполнениявышеприведенное выглядит следующим образом:
import re
pattern = re.compile("[a-z][A-Z]{3}([a-z])[A-Z]{3}[a-z]")
f = open('/Users/Dev/Sometext.txt','r')
for line in f:
result = pattern.search(line)
if result:
print result.groups()
f.close()
Приведенный выше сценарий вместо возврата захвата (списка символов в нижнем регистре) возвращает все текстовые блоки, которые соответствуют критериям регулярного выражения, например
aXCSdFGHj
vCDFeTYHa
nHJUiKJHo
.........
.........
Может кто-нибудь сказать мне, что именно я делаю здесь неправильно?И вместо того, чтобы перебирать весь файл, есть ли альтернативный способ выполнить поиск по регулярному выражению по всему файлу?
Спасибо