Boost logo

Boost Users :

From: David Abrahams (dave_at_[hidden])
Date: 2003-12-12 14:50:26

Scott Meyers <Usenet_at_[hidden]> writes:

> I want to use regex to modify a string in place. In particular, I've read
> the contents of a file into a string, now I want to do some search/replace
> functions on the string, then write the modified string back out to the
> original file. I've looked through the regex documentation, including the
> October 2001 DDJ article, but I don't see any way to modify a string in
> place. From what I can tell, regex_merge looks like it does the kind of
> thing I want, except it doesn't seem to modify in place. I'd prefer to
> avoid creating two strings of each file's contents, one before regex
> processsing, one after. Is there functionality in regex that will let me
> modify a string in place?

Are you sure you can't use

to solve your problem?

By the way, repeated in-place modification, especially if you start
from the front of the string, is O(N^2), so you really might be better
off doing this into a separate string. Don't forget that you could
end up with the same instantaneous memory usage anyway because when a
string grows it has to reallocate its buffer. Text editors normally use
something called a "gap buffer" to make this sort of thing more
efficient, but you really have to have a very specialized application
before that's the best solution.

Dave Abrahams
Boost Consulting

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at