2016-02-17 3 views
0

Я сделал неуклюжую первую попытку сопоставления нечеткого шаблона с использованием модуля re в python 2.7.Fuzzy regex matching with python возвращает пустой список

К сожалению, каждая попытка, которую я делаю, возвращает пустой список. Я просто не понимаю требуемый синтаксис. Мне было интересно, может ли кто-нибудь сказать мне, почему следующий код:

import re 
m = re.findall('(ATCT){e<=1}', 'ATCGATCGGCATGCAGTGCAGAAGTGACGAT') 
print m 

возвращает пустой список?

+0

Что ур ожидаемый результат? –

+0

Вас интересует только объяснение? Не в решении? Ваше регулярное выражение - беспорядок. Он соответствует 'ATCT', за которым следует' {e <= 1} '- это буквальные последовательности символов. См. [Что соответствует] (https://regex101.com/r/dR7sK9/1). –

+0

@AvinashRaj шаблон должен соответствовать нескольким местам в строке с одним совпадением, выход должен быть списком этих шаблонов. – poppyseeds

ответ

1

Поскольку вы намеревались использовать PyPi regex module, вам нужно использовать

>>> import regex 
>>> m = regex.findall('(ATCT){e<=1}', 'ATCGATCGGCATGCAGTGCAGAAGTGACGAT') 
>>> print(m) 
['ATCG', 'ATCG'] 
+0

Спасибо. Я не понимал, что они разные модули, поскольку я не знал о различии. В качестве последующего вопроса, есть ли способ выполнить это с помощью модуля re? – poppyseeds

+0

Невозможно сделать это с помощью модуля 're'. –