Я пытаюсь найти базу данных строк для определенного шаблона.Я хочу искать образец в прямом и обратном направлении.Однако я попытался создать две группы захвата, так как шаблон увеличивается, его изменение не так просто и может привести к ошибкам.Я думал о создании реверсов моей последовательности, однако я не уверен, как интегрировать ее в мой список правил:
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')