首页 > 解决方案 > Python 2.7 | 使用 RegEx 为变量插入右括号

问题描述

我有一个文件,其中包含:

  a[0  a[1  a[2  a[3  a[4  a[5  a[6  a[7  a[8 \
  a[9  a[10  a[11  a[12  a[13  a[14  a[15  a[16 \
  a[17  a[18  a[19  a[20  a[21  a[22  a[23  a[24 \
  a[25  a[26  a[27  a[28  a[29  a[30  a[31  b[0  b[1 \
  b[2  b[3  b[4  b[5  b[6  b[7  b[8  b[9  b[10 \
  b[11  b[12  b[13  b[14  b[15  b[16  b[17  b[18 \
  b[19  b[20  b[21  b[22  b[23  b[24  b[25  b[26 \
  b[27  b[28  b[29  b[30  b[31

我想为每个变量插入一个右括号。这些数字可以针对未来的变量而增长。我们如何使用正则表达式来做到这一点?提前致谢。

标签: pythonregexpython-2.7

解决方案


使用re.sub

前任:

import re

s = """a[0  a[1  a[2  a[3  a[4  a[5  a[6  a[7  a[8 \
  a[9  a[10  a[11  a[12  a[13  a[14  a[15  a[16 \
  a[17  a[18  a[19  a[20  a[21  a[22  a[23  a[24 \
  a[25  a[26  a[27  a[28  a[29  a[30  a[31  b[0  b[1 \
  b[2  b[3  b[4  b[5  b[6  b[7  b[8  b[9  b[10 \
  b[11  b[12  b[13  b[14  b[15  b[16  b[17  b[18 \
  b[19  b[20  b[21  b[22  b[23  b[24  b[25  b[26 \
  b[27  b[28  b[29  b[30  b[31"""

res = re.sub(r"([a-z]\[\d+)", r"\1]", s)
print res

输出:

'a[0]  a[1]  a[2]  a[3]  a[4]  a[5]  a[6]  a[7]  a[8]   a[9]  a[10]  a[11]  a[12]  a[13]  a[14]  a[15]  a[16]   a[17]  a[18]  a[19]  a[20]  a[21]  a[22]  a[23]  a[24]   a[25]  a[26]  a[27]  a[28]  a[29]  a[30]  a[31]  b[0]  b[1]   b[2]  b[3]  b[4]  b[5]  b[6]  b[7]  b[8]  b[9]  b[10]   b[11]  b[12]  b[13]  b[14]  b[15]  b[16]  b[17]  b[18]   b[19]  b[20]  b[21]  b[22]  b[23]  b[24]  b[25]  b[26]   b[27]  b[28]  b[29]  b[30]  b[31]'

推荐阅读