我正在尝试将字符串与下面的正则表达式匹配。在第11个学期,我希望第11个字符与Python 3上的第一个字符相同,第12个字符与第二个字符相同。我已经按照hackerrank的说明尝试了\ 1 \ 2,但是运行代码时出现错误。
strcom = 'ab #1?AZa$ab #1?AZa$'
match = re.findall(r'[a-z]\w\s\W\d\D[A-Z][a-zA-Z][aeiouAEIOU]\S\1\2',strcom)
答案 0 :(得分:0)
您需要将capturing groups添加为Onyambu suggests,但是要获取匹配项,您应该使用re.finditer
(如果您期望多个匹配项)或re.search
查找单个匹配(或re.match
,如果您只希望在字符串的开头进行单个匹配)。
import re
strcom = 'ab #1?AZa$ab #1?AZa$'
for m in re.finditer(r'([a-z])(\w)\s\W\d\D[A-Z][a-zA-Z][aeiouAEIOU]\S\1\2', strcom):
print(m.group())
# => ab #1?AZa$ab
请参见Python demo
re.findall
的问题在于,如果在模式中定义了捕获组,则只会返回捕获的子字符串。