我有一个包含以下内容的文件: 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我想为每个变量插入一个右括号。这些数字可能会随着将来的变量而增加。我们如何使用正则表达式呢?提前致谢。
3 回答
慕森卡
TA贡献1806条经验 获得超8个赞
您可以使用模式:
([a-z]\[\d+)
在Python中:
import re
mystr = """
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
"""
print(re.sub(r'([a-z]\[\d+)',r'\1]',mystr))
ABOUTYOU
TA贡献1812条经验 获得超5个赞
您不需要使用正则表达式。只需使用split
和join
:
' '.join(map(lambda x: f'{x}]', text.strip().split()))
添加回答
举报
0/150
提交
取消