假设我们在excel中有一个给定的单元格,描述为“ A1:C1000 ”
如果我必须将' 1 '替换为' 10 '并将' 1000 '替换为' 999 “ 使用re.sub()我将如何生成表达式以将字符串替换为“ A10:C999 ”
答案 0 :(得分:0)
([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
断言位置为单词边界