假设我们在Excel中的范围中有一个给定的单元格被描述为" a1:c1000 "
如果我必须用' 10 ''替换''和' 1000 '到' 999 ''使用re.sub()我将如何生成表达式将字符串替换为" a10:c999 "
代码
正则1
请参阅此处使用的正则
([A-Z]+)1b
替换:g<1>10
结果A10:C1000
正则2
请参阅此处使用的正则
([A-Z]+)1000b
替换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
断言作为单词边界的位置