假设我们在excel中有一个给定的单元格,描述为“A1:C1000”
如果我必须将'1'替换为'10'并将'1000'替换为'999'使用re.sub()我将如何生成表达式以将字符串替换为“A10:C999”
([A-Z]+)1\b
替换:\g<1>10
结果在A10:C1000
([A-Z]+)1000\b
更换\g<1>999
结果在A10:C999
([A-Z]+)(\d+)\b
使用re.sub
回调...
import re
s = "A1:C1000"
r = r"([A-Z]+)(\d+)\b"
def mySub(m):
letter = m.group(1)
contents = m.group(2)
if contents == '1':
return letter + '10'
if contents == '1000':
return letter + '999'
print re.sub(r, mySub, s)
([A-Z]+)
将一个或多个大写ASCII字符捕获到捕获组1中1
(或1000,或任何你想要的)按字面意思匹配。在回调方法中,(\d+)
将一个或多个数字捕获到捕获组2中\b
将位置断言为单词边界