Featured post
regex - CMake: how to get the backslash literal in Regexp replace? -
i trying replace forwardslashes backslashes. have following line of code:
string(regex replace "/" "\\" sourcegroup ${sourcegrouppath} )
sourcegrouppath = a/file/path. sourcegroup variable set result to.
the problem having with, "\\" part code. have tried several ways getting use backslash literal "\\" , using unicode nothing seems work.
the error in cmake is:
cmake error @ cmakelists.txt:41 (string): string sub-command regex, mode replace: replace-expression ends in backslash.
can please me out?
thanks,
wouter
the reason in cmake string literal, backslash escape character (just in c, java or javascript) , in regex, backslash escape character as well.
so represent regex string literal, need double escaping. (that's why many "higher level" languages have regex literal notation, btw.)
the string literal "\\"
represents in-memory string "\"
, that's invalid regex, hence "ends in backslash" error.
the string literal "\\\\"
represents "\\"
in memory valid regex (representing single backslash).
- Get link
- X
- Other Apps
Comments
Post a Comment