Regex 正则表达式中相同组的1到5个

Regex 正则表达式中相同组的1到5个,regex,Regex,对于字符串,例如: abzyxcabkmqfcmkcde 请注意,ab和c之间有粗体的字符串模式。要捕获第一个字符串模式,请执行以下操作: ab([a-z]{3,5})c 是否可以匹配样本字符串中的两个组?实际上,应该有1到5组 注意:python风格的正则表达式。只需匹配所有结果-即使用g标志: /ab([a-z]{3,5})c/g 或者类似Python中的某些方法: re.findall(pattern, string, flags=0) 您可以使用此正则表达式验证给定字符串是否符合ab

对于字符串,例如:

abzyxcabkmqfcmkcde

请注意,
ab
c
之间有粗体的字符串模式。要捕获第一个字符串模式,请执行以下操作:

ab([a-z]{3,5})c

是否可以匹配样本字符串中的两个组?实际上,应该有1到5组


注意:python风格的正则表达式。

只需匹配所有结果-即使用
g
标志:

/ab([a-z]{3,5})c/g
或者类似Python中的某些方法:

re.findall(pattern, string, flags=0)

您可以使用此正则表达式验证给定字符串是否符合ab([a-z]{3,5})c的1-5个重复

(?:ab([a-z]{3,5})c){1,5}
或者,如果组之间需要字符,则使用此选项

(?:ab([a-z]{3,5})c.*?){1,5}

但是,您只能从该字符串中提取最后一个匹配的组,而不能提取之前的任何组。要获得上一个组,您需要使用hsz的有效方法

,但它需要编程方面的更多逻辑来验证是否有1到5个组。如果有更多的组,那么我希望它们不匹配。也许这是不可能的?@user1135541我对Python不太熟悉,但这应该是可能的:
(?:ab([a-z]{3,5})c.*){1,5}
它可以验证整个字符串是否符合模式,但它不会提取所有捕获组(尽管我认为这实际上不可能)