高级替换

时间:2016-07-14 14:54:35

标签: python replace

我有一个包含文本的大文件(2GB),我需要在每行中替换(每行都是单独的),行中存在的令牌的所有子串(在未定义的位置)并由前缀KEYWORD_ID标识/使用令牌和原始单词:

示例:

  System.config({
    packages: {        
      app: {
        format: 'cjs', // commonjs
        defaultExtension: 'js'
      }
    }
  });

输出应如下所示:

This is an example of the KEYWORD_ID/Replace_Command that is given as an input, 
replace command should be replaced

连续可能存在许多KEYWORD_ID

如何以有效的方式执行此操作?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

2GB并不大,只是逐行迭代,并使用regex

如果有一个替换命令:

import re

str = 'This is an example of the KEYWORD_ID/Replace_Command that is given as an input, replace command should be replaced'

print(re.sub(r'\breplace\b', re.search('KEYWORD_ID/\w+',str).group(), str))

# returns: This is an example of the KEYWORD_ID/Replace_Command that is given as an input, KEYWORD_ID/Replace_Command command should be replaced

如果有更多,你将不得不迭代re.group