以大字符串替换

std / boost regex_replace按值返回修改后的字符串。 在我的情况下,我必须在文件中搜索/替换为正则表达式。 我有数千个文件需要处理,其中很多文件大小超过1MB。 要被搜索和替换的字符串很少见(例如,只有5-10%的文件会拥有它)。 因此,使用可用的接口可以运行正则表达式替换,并且如果找不到搜索的字符串,那么避免创建1MB缓冲区的副本? 我似乎没有弄清楚,是c ++中的正则表达式接口失败,唯一的办法是首先在我的缓冲区中搜索字符串,只有找到它然后使用regex_replace(有效地搜索第二次)? 或者我可以重用regex_match或regex_search的结果并将它们传递给regex_replace?

链接地址: http://www.djcxy.com/p/31547.html

上一篇: replace in large string

下一篇: Python script appends to an existing file but stops after 8192 bytes