Boost logo

Boost :

From: John Maddock (jm_at_[hidden])
Date: 2003-08-08 05:23:42


>Given that I have a string 's' from somewhere, I'd like to create a
>regular expression where some part must match that string. The problem
>is, the 's' could contain characters that have a special meaning in
>regular expressions. Is there some support function that can provide an
>escaped version of 's'? Something that transforms "my.*string" into
>"my\.\*string"? If there isn't, would it be possible/easy to provide one?

Good question, no there isn't, but how about:

std::string escape_regex(const std::string& s)
{
    static const std::regex e("[\\[\\]$\\^|.+*?(){}]");
    return regex_merge(s, e, "\\\\$&");
}

Just off the top of my head and untried....

I'll try and think up something more general that works with all the flag
settings though...

John.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk