我正在尝试找到连续重复字母数字字符的匹配项。我正在尝试re.match("(\w)[\\1][\\1]",mystring),但它似乎不起作用(总是返回None)。我想说的是“无论括号中是否包含字母数字字母,请检查它是否连续两次出现在任何地方。”

最佳答案

足够近 :)

您可以使用re.findallre.search

mystring = 'abccd'
print re.findall(r'(\w)\1', mystring)  # ['c']


使用match失败的原因是match试图从字符串的开头查找匹配项,并且在字符串的开头没有这样的模式"(\w)[\\1][\\1]"

如果要使用match,仍可以使用,但是它需要对捕获的组具有附加访问权限:

mystring = 'abccd'
m = re.match(r'.*(\w)\1', mystring)
print m.group(1)  # 'c'

10-08 08:44
查看更多