Regex 用于获取长度为n的所有子字符串的正则表达式

Regex 用于获取长度为n的所有子字符串的正则表达式,regex,Regex,给定一个只包含小写字母和整数的输入字符串N。我需要一个正则表达式来从输入字符串中提取长度N的所有子字符串。例如:let N=3和input string=“baababaacb”结果应该是:“baa”“aab”“aba”“bab”“aba”“bac”“acb” 我已经尝试过:([a-z]{3}),并多次尝试使其非贪婪:(?:[a-z]{3})和([a-z]{3}?,但两者都不能产生所需的输出,而且我也不确定我采取的方法是否正确。任何帮助都将不胜感激。您可以使用此lookahead正则表达式获取所

给定一个只包含小写字母和整数的输入字符串
N
。我需要一个正则表达式来从输入字符串中提取长度
N
的所有子字符串。例如:
let N=3
input string=“baababaacb”
结果应该是:
“baa”“aab”“aba”“bab”“aba”“bac”“acb”


我已经尝试过:
([a-z]{3})
,并多次尝试使其非贪婪:
(?:[a-z]{3})
([a-z]{3}?
,但两者都不能产生所需的输出,而且我也不确定我采取的方法是否正确。任何帮助都将不胜感激。

您可以使用此lookahead正则表达式获取所有3个字符的字符串:

(?=([a-z0-9]{3}))

您可以使用此lookahead regex获取所有3个字符的字符串:

(?=([a-z0-9]{3}))

这是一个很好的例子。正则表达式是这项工作的错误工具。@zzbov你是在建议我删除第二段吗?一点也不,我是在建议你把问题改写成关于你的目标而不是你的尝试。这是一个很好的例子。正则表达式是这项工作的错误工具。@zzbov你是在建议我删除第二段吗?一点也不,我是在建议你把问题改写成关于你的目标而不是你的尝试。谢谢我使用C++,而且很有效。(虽然,输入只包含小写字母,所以我去掉了“0-9”)。是的,这是正确的,对于小写字母,您可以使用:
(?=([a-z]{3}))
谢谢。我使用C++,而且很有效。(虽然,输入只包含小写字母,所以我去掉了“0-9”)。是的,这是正确的,对于小写字母,您可以使用:
(?=([a-z]{3}))