2024-10-04 07:38:46 发布
网友
即'aaeegggwwqqqqq', 'ttteeyyjjj'
'aaeegggwwqqqqq', 'ttteeyyjjj'
我尝试了r'(([a-z])\1*)+$',但得到的错误是:无法引用开放组。你知道吗
r'(([a-z])\1*)+$'
有人能帮我弄清楚吗?谢谢!你知道吗
是吗
(([a-z])\2*)+$
工作?你知道吗
快速看一下,(([a-z])\2*)是第一组,([a-z])是第二组。看来你是想提到第二组。你知道吗
(([a-z])\2*)
([a-z])
您应该使用非捕获外部组:
re.match(r'(?:([a-z])\1+)+$', s)
参见regex demo
这样,就不必重新调整模式内部的反向引用。你知道吗
另一种方法是使用命名的捕获组和命名的反向引用:
re.match(r'((?P<l>[a-z])(?P=l)+)+$', s)
见this regex demo
这里,(?P<l>[a-z])将ASCII小写字母捕获到组“l”中并且(?P=l)+匹配捕获的字母的1个或多个(+尽可能多次匹配量化子模式的一个或多个出现)。你知道吗
(?P<l>[a-z])
(?P=l)+
+
Python demo:
import re s = ["aaeegggwwqqqqq", "ttteeyyjjj", "sdfghj"] for x in s: if re.match(r'(?:([a-z])\1+)+$', x): print("{0} matches the pattern".format(x))
输出:
aaeegggwwqqqqq matches the pattern ttteeyyjjj matches the pattern
是吗
工作?你知道吗
快速看一下,
(([a-z])\2*)
是第一组,([a-z])
是第二组。看来你是想提到第二组。你知道吗您应该使用非捕获外部组:
参见regex demo
这样,就不必重新调整模式内部的反向引用。你知道吗
另一种方法是使用命名的捕获组和命名的反向引用:
见this regex demo
这里,
(?P<l>[a-z])
将ASCII小写字母捕获到组“l”中并且(?P=l)+
匹配捕获的字母的1个或多个(+
尽可能多次匹配量化子模式的一个或多个出现)。你知道吗Python demo:
输出:
相关问题 更多 >
编程相关推荐