python正则表达式意外匹配组

python正则表达式意外匹配组,python,regex-group,re,Python,Regex Group,Re,我正在尝试使用正则表达式((\^)[1-9])查找所有出现的“'+数字或“^”+数字 我希望回到的组,例如“X_2zzy^5”将是[(“u 2”),(“^5”)],但我得到的是[(“u 2”,““"”),(“^5”,“^')] 我的正则表达式不正确吗?还是我对返回内容的期望不正确 非常感谢 **我原来重复使用的(\u124; ^)这是不正确的,应该是(\u124; ^)——问题已经相应地修改了要求在单个捕获组中的特殊字符或^后面至少有1位数字(1-9): import re text = &q

我正在尝试使用正则表达式
((\^)[1-9])
查找所有出现的
“'+数字
“^”+数字

我希望回到的组,例如
“X_2zzy^5”
将是
[(“u 2”),(“^5”)]
,但我得到的是
[(“u 2”,““"”),(“^5”,“^')]

我的正则表达式不正确吗?还是我对返回内容的期望不正确

非常感谢

**我原来重复使用的
(\u124; ^)
这是不正确的,应该是
(\u124; ^)
——问题已经相应地修改了要求在单个捕获组中的特殊字符
^
后面至少有1位数字(1-9):

import re

text = "X_2ZZZY^5"
pattern = r"([_\^][1-9]{1,})"
regex = re.compile(pattern)
res = re.findall(regex, text)
print(res)
返回:

['_2', '^5']

您的正则表达式中有2个组-因此您得到了2个组。您至少需要匹配下面的1个数字

试试这个:

([_\^][1-9]+)

请在操作中查看

您有两组括号,因此将得到两组。