如何使用Python替换字符串中的数值?

时间:2014-02-14 13:53:21

标签: python regex

我需要使用Python脚本修改C源文件。我该如何更改此字符串:

#define MY_STRING      0

为:

#define MY_STRING      1

使用Python正则表达式?

理想情况下,解决方案将在数值之前容纳未知数量的空格。

(基本上我不知道如何指定原始字符串减去新字符串中的数字值。)

1 个答案:

答案 0 :(得分:3)

在数字和文本之间使用\s+任意数量的空格。

code = re.sub('define MY_STRING\s+0', 'define MY_STRING 1', code);

如果你想在原始字符串之前保留相同数量的空格,那么你必须捕获它然后在替换时使用它。

code = re.sub('(define MY_STRING\s+)0', "\\1 1", code);
## \\1 is the captured group on regex inside (...)