更新字符串中间的数字

时间:2011-07-08 15:49:59

标签: python regex

我正在看diff-style输出,但我需要更新行号。所以我明白了:

*** 1,2 *****
Actual line 1
Actual line 2
--- 1,2 -----
Expected line 1
Expected line 2

在我的结果文件中,我正在重新调整。因此,如果resline =第90行,我想将第二个“1,2”更改为“91,92”。

在perl中,我会在以“---”

开头的行上使用以下内容
s/(\d+?)/($1+$resline)/eg

我应该如何在python中执行此操作?

1 个答案:

答案 0 :(得分:3)

您将使用re.sub并传入可调用而不是字符串作为替换:

import re
re.sub(r'\d+?', lambda m: str(int(m.group(0))+resline), YOUR_STR)