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

问题描述 投票:-1回答:1

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

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

regex python-3.x
1个回答
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

Single Regex

([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将位置断言为单词边界
© www.soinside.com 2019 - 2024. All rights reserved.