Как я могу расширить код ниже, чтобы позволить мне исследовать все экземпляры, где у меня есть 2 несоответствия или меньше между моей подстрокой и родительской строкой?String regex two mismatches Python
Substring: SSQP
Строка-матч-до: SSPQQQQPSSSSQQQSSQPSPSQSSQPSSQPPSSSSQPSPSQSSQPSSSSQPSPSQSSQPSSSSQPSPSQ
Вот пример, в котором включен только один возможный несоответствие:
>>> s = 'SSPQQQQPSSSSQQQSSQPSPSQSSQPSSQPPSSSSQPSPSQSSQPSSSSQPSPSQSSQPSSSSQPSPSQ'
>>> re.findall(r'(?=(SSQP|[A-Z]SQP|S[A-Z]QP|SS[A-Z]P|SSQ[A-Z]))', s)
['SSQQ', 'SSQP', 'SSQP', 'SSQP', 'SSQP', 'SSQP', 'SSQP', 'SSQP', 'SSQP']
Очевидно, что включение в возможность из двух несоответствий в вышеприведенном коде потребовалось бы много грубой силы при наборе всех возможных комбинаций.
Как я могу расширить этот код (или реорганизовать этот код), чтобы изучить возможность двух несоответствий?
Кроме того, я хочу изменить свой вывод, чтобы получить возвращаемый числовой индекс (не SSQQ
или SSQP
) точной позиции, подстрокой которой соответствует строка.
Действительно, регулярные выражения - всего лишь неправильный инструмент для использования в целом. За 2 ошибки из 20, в шаблоне будет 190 альтернатив. –
Можете ли вы вернуть номера индексов, похожие на 'match.start (0)' technique of 200_success? – warship
@warship Оформить заказ! – Kasramvd