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

时间:2017-12-18 22:46:48

标签: regex python-3.x

假设我们在excel中有一个给定的单元格,描述为“ A1:C1000

如果我必须将' 1 '替换为' 10 '并将' 1000 '替换为' 999 “ 使用re.sub()我将如何生成表达式以将字符串替换为“ A10:C999

1 个答案:

答案 0 :(得分:0)

代码

Regex 1

See regex in use here

([A-Z]+)1\b

替换:\g<1>10
A10:C1000

中的结果

Regex 2

See regex in use here

([A-Z]+)1000\b

替换\g<1>999
A10:C999

中的结果

单一正则表达式

([A-Z]+)(\d+)\b

使用re.sub回调...

See code in use here

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断言位置为单词边界