Python Regex:在OpenPyXl范围内匹配并替换字符串实例



假设我们在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断言作为单词边界的位置

最新更新