Спасибо заранее. Я хочу найти всю подстроку, которая встречается между K и N, в то время как K и N происходят между любыми количеством раз. например
a = 'KANNKAAN'Найти подстроку
OUTPUT;
[KANNKAAN, KANN, KAN, KAAN]
Спасибо заранее. Я хочу найти всю подстроку, которая встречается между K и N, в то время как K и N происходят между любыми количеством раз. например
a = 'KANNKAAN'Найти подстроку
OUTPUT;
[KANNKAAN, KANN, KAN, KAAN]
import re
def occurences(ch_searched, str_input):
return [i.start() for i in re.finditer(ch_searched, str_input)]
def betweeners(str_input, ch_from, ch_to):
starts = occurences(ch_from, str_input)
ends = occurences(ch_to, str_input)
result = []
for start in starts:
for end in ends:
if start<end:
result.append(str_input[start:end+1])
return result
print betweeners('KANNKAAN', "K", "N")
Это то, что Вам нужно?
да спасибо. Полезный для анализа последовательности – 2009-05-23 09:24:28
Другой способ:
def findbetween(text, begin, end):
for match in re.findall(begin + '.*' +end, text):
yield match
for m in findbetween(match[1:], begin, end):
yield m
for m in findbetween(match[:-1], begin, end):
yield m
>>> list(findbetween('KANNKAAN', 'K', 'N'))
['KANNKAAN', 'KAAN', 'KANN', 'KAN']
Если Вы удовлетворены предоставленной решением, пожалуйста, отметьте ответ, как принято, спасибо. –