Шаблон поиска регулярных выражений Python или строка в обратном направлении - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь найти базу данных строк для определенного шаблона.Я хочу искать образец в прямом и обратном направлении.Однако я попытался создать две группы захвата, так как шаблон увеличивается, его изменение не так просто и может привести к ошибкам.Я думал о создании реверсов моей последовательности, однако я не уверен, как интегрировать ее в мой список правил:

re.findall(regex, v) or re.findall(regex, v[::-1]) 

Я также хочу добавить больше условий, например, если первые 10 букв содержатопределенное письмо, как я могу сделать это, не загромождая мой код?

import re
database={'key', 'MSCPFSPKQPGFGHFREPTTRSSVAKVIERNSGALIVFGGAAACVVAGWKVRGYLTDRQLSQL'}
regex = r'([A-Z]{3}[Y|W|F|I|H][A-Z]P[^YFWHI]{4}[Y|W|F|I|H][A-Z]{3})|([A-Z]{3}[Y|W|F|I|H][^YFWHI]{4}P[A-Z][Y|W|F|I|H][A-Z]{3})'

for k,v in database.items():
    rules = [re.findall(regex, v), 1 < len(v) < 200, len(re.findall(r'W',v))<4]
    if all(rules):
        print(re.findall(regex, v))
        print('%s' %k)
        print('%s' %v)
        print('%s' %len(v))
        print('\n')
...