重复序列的正则表达式

scd*_*dmb 3 python regex

我想匹配由逗号分隔的三个字符的字母序列(只允许字母'a','b','c')(最后一个组不以逗号结尾).

例子:

abc,bca,cbb
ccc,abc,aab,baa
bcb
Run Code Online (Sandbox Code Playgroud)

我写了以下正则表达式:

re.match('([abc][abc][abc],)+', "abc,defx,df")
Run Code Online (Sandbox Code Playgroud)

但它无法正常工作,因为上面的示例:

>>> print bool(re.match('([abc][abc][abc],)+', "abc,defx,df")) # defx in second group
True
>>> print bool(re.match('([abc][abc][abc],)+', "axc,defx,df")) # 'x' in first group
False
Run Code Online (Sandbox Code Playgroud)

似乎只检查第一组三个字母,但它忽略了其余的.如何正确编写这个正则表达式?

sce*_*sor 10

试试下面的正则表达式:

^[abc]{3}(,[abc]{3})*$
Run Code Online (Sandbox Code Playgroud)

^...$从字符串的开头到结尾字符串中的
[...]一个给定字符
...{3}三次短语前的
(...)*0到n次括号中的字符