python正则表达式findall无法正确匹配
我想匹配“[M]+”和“[M]2+”python正则表达式findall无法正确匹配,python,regex,Python,Regex,我想匹配“[M]+”和“[M]2+” 但结果是 re.findall("\[M(\+\d)?\](\d)?\+", u'[2][M]+[2][M]2+') 您已在regex模式中捕获组,该模式将返回组;如果需要返回匹配项,可以使用?:将捕获的组转换为未捕获的组: [('', ''), ('', '2')] import re re.findall("\[M(?:\+\d)?\](?:\d)?\+", u'[2][M]+[2][M]2+') # ^^
但结果是
re.findall("\[M(\+\d)?\](\d)?\+", u'[2][M]+[2][M]2+')
您已在regex模式中捕获组,该模式将返回组;如果需要返回匹配项,可以使用
?:
将捕获的组转换为未捕获的组:
[('', ''), ('', '2')]
import re
re.findall("\[M(?:\+\d)?\](?:\d)?\+", u'[2][M]+[2][M]2+')
# ^^ ^^
# ['[M]+', '[M]2+']