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.