1

我有一个小的 python 脚本,它遍历一堆文件,并在每个文件中应用一些正则表达式。我想添加一个确认步骤,其中显示旧文本和新文本。有什么有效的方法可以做到这一点。现在,在一个字符串中,我正在执行一个.search.,然后.sub在匹配的文本中执行 a,如果用户确认我将新文本插入到原始字符串中(通过索引)。

4

1 回答 1

4

您可以将 re.sub 与要求用户确认的回调一起使用:http:
//docs.python.org/2/library/re.html#text-munging

text = 'This is a dummy dummy text'

def callback(m):
    string = m.group()
    subst = string.upper()
    start = m.start()
    question = 'subst {:s} at pos {:d}:'.format(string, start)
    ans = raw_input(question)
    if ans[0] in 'Yy':
        return subst
    else:
        return string

print re.sub(r'\bdummy\b', callback, text)

哪个打印

subst dummy at pos 10:n
subst dummy at pos 16:y
This is a dummy DUMMY text
于 2013-02-02T16:39:15.437 回答