Python 正则表达式中的匹配数可以循环吗?

Python 正则表达式中的匹配数可以循环吗?,python,regex,Python,Regex,我使用下面的regex查找一个字符串中的匹配项,该字符串是模式的3个字符匹配项 import re s="banana" print re.findall(r'(?=([^aeiou].{2}))',s,re.I) 是否可以循环遍历正则表达式(将上述正则表达式中的{2}更改为{0}、{1}、{3}、{4}、{5}),以便获得所有字符匹配 import re s = "banana" for n in range(0, 6): print re.findall(r'(?=([^aeiou

我使用下面的
regex
查找一个字符串中的匹配项,该字符串是模式的3个字符匹配项

import re
s="banana"
print re.findall(r'(?=([^aeiou].{2}))',s,re.I)
是否可以循环遍历正则表达式(将上述正则表达式中的
{2}
更改为
{0}、{1}、{3}、{4}、{5}
),以便获得所有字符匹配

import re
s = "banana"
for n in range(0, 6):
    print re.findall(r'(?=([^aeiou].{{{n}}}))'.format(n=n), s, re.I)
演示:

像这样

import re
s = "banana"
for n in range(0, 6):
    print re.findall(r'(?=([^aeiou].{{{n}}}))'.format(n=n), s, re.I)
演示:


您可以简单地在for循环中循环数字,并使用
%d
将其格式化为所需的数字

import re
s="banana"

result = []
for i in range(len(s)):
    part = re.findall(r'(?=([^aeiou].{%d}))'%i, s,re.I)
    result.extend(part)

print(result)
这将打印出:

['b', 'n', 'n', 'ba', 'na', 'na', 'ban', 'nan', 'bana', 'nana', 'banan', 'banana']

您可以简单地在for循环中循环数字,并使用
%d
将其格式化为所需的数字

import re
s="banana"

result = []
for i in range(len(s)):
    part = re.findall(r'(?=([^aeiou].{%d}))'%i, s,re.I)
    result.extend(part)

print(result)
这将打印出:

['b', 'n', 'n', 'ba', 'na', 'na', 'ban', 'nan', 'bana', 'nana', 'banan', 'banana']

你是说
{0,5}
?使用
{0,5}
会让我
['banana','nana','na']
。我正在寻找所有1,2,3,4,5,6个字符的匹配。你是说
{0,5}
?使用
{0,5}
会让我
['banana',nana',na']
。我正在寻找解决方案的所有1,2,3,4,5,6字符匹配。我很感激。谢谢你的解决方案。我很感激。谢谢你的解决方案。我很感激。谢谢你的解决方案。我很感激。