Exception when escaping "\" in Boost Regex

126 Views Asked by At

I'm always getting an exception when trying to escape a backslash like this:

        boost::regex shaderRegex{ "test\\" };

Am I doing something wrong?

Unhandled exception at 0x00007FFD13034FD9 in project.exe: Microsoft C++ 
exception: boost::wrapexcept<boost::regex_error> at memory location 
1

There are 1 best solutions below

2
Drew Dormann On BEST ANSWER

A literal backslash would be

boost::regex shaderRegex{ "test\\\\" };

In a C++ string, the characters \\ represent a single backslash character.

To represent a regex literal (escaped) backslash, you would need two of those.

If this looks confusing, you can also use a C++11 raw string literal.

boost::regex shaderRegex{ R"(test\\)" };