使用re.sub捕获组

时间:2016-09-03 09:17:35

标签: python

为这个简单的问题道歉,但我正在努力解决这个问题:

str = 'EURGBP'

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

返回

GBP

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

给了我error: unbalanced parenthesis at position 5

我只是想捕捉括号中的两个元素,然后按照相反的顺序将它们打印出来:

GBPEUR

有人可以告诉我我做错了吗?

1 个答案:

答案 0 :(得分:1)

由于\(意味着您在字符串中搜索(,因此结束)没有匹配的开头(,逃避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'