Python 使用re.sub捕获组

Python 使用re.sub捕获组,python,Python,对于这个简单的问题,我深表歉意,但我正在努力解决这个问题: str = 'EURGBP' print (re.sub(r'\EUR(GBP)', r'\1', str)) 返回 GBP 但是 给我提供错误:位置5处的括号不平衡 我只是尝试捕获括号中包含的两个元素,并使用re按相反顺序打印出来,如下所示: GBPEUR 有人能告诉我我做错了什么吗?不要逃避,因为\(意味着你正在字符串中搜索(),所以结束)没有匹配的开始(,转义E在查找文本E时起作用,也只需使用r'\2\1',除非您希望它们

对于这个简单的问题,我深表歉意,但我正在努力解决这个问题:

str = 'EURGBP'

print (re.sub(r'\EUR(GBP)', r'\1', str))
返回

GBP
但是

给我提供
错误:位置5处的括号不平衡

我只是尝试捕获括号中包含的两个元素,并使用re按相反顺序打印出来,如下所示:

GBPEUR

有人能告诉我我做错了什么吗?

不要逃避,因为
\(
意味着你正在字符串中搜索
),所以结束
没有匹配的开始
,转义
E
在查找文本
E
时起作用,也只需使用
r'\2\1'
,除非您希望它们也用逗号分隔:

In [1]: import re

In [2]: s = 'EURGBP'

In [3]: re.sub(r'(EUR)(GBP)', r'\2\1', s)
Out[3]: 'GBPEUR'
In [1]: import re

In [2]: s = 'EURGBP'

In [3]: re.sub(r'(EUR)(GBP)', r'\2\1', s)
Out[3]: 'GBPEUR'