相关疑难解决方法(0)

无法在 re.sub() repr 表达式的函数调用中使用“\1”反向引用捕获组

我有一个字符串S = '02143'和一个列表A = ['a','b','c','d','e']。我想将 'S' 中的所有数字替换为 list 中相应的元素A

例如,替换0A[0]2withA[2]等。最终输出应该是S = 'acbed'.

我试过:

S = re.sub(r'([0-9])', A[int(r'\g<1>')], S)
Run Code Online (Sandbox Code Playgroud)

然而这会产生错误ValueError: invalid literal for int() with base 10: '\\g<1>'。我猜它正在将反向引用'\g<1>'视为字符串。我该如何解决这个问题,特别是使用re.sub和捕获组,否则呢?

python regex backreference substitution capture-group

2
推荐指数
1
解决办法
611
查看次数