[cmake-developers] regex bug?

David Cole david.cole at kitware.com
Thu Dec 13 13:47:08 EST 2012


Same thing with the other backslash, too. Double it up.


On Thu, Dec 13, 2012 at 1:44 PM, David Cole <david.cole at kitware.com> wrote:

> For the replacement string, you need to use "\\1" -- the backslash in that
> context needs to be escaped to get through the CMake language, so that the
> regex engine sees "\1" internally...
>
>
>
> On Thu, Dec 13, 2012 at 1:38 PM, Matthew Woehlke <
> matthew.woehlke at kitware.com> wrote:
>
>> Consider this line of CMake code:
>>
>> string(REGEX REPLACE "^([^.]*)(\..*)?$" "\1" BAR "${FOO}")
>>
>> It looks reasonable to me, and works fine on !Windows. However, on
>> Windows, I get these errors:
>>
>> Syntax error in cmake code at <elided> when parsing string
>> ^([^.]*)(\..*)?$
>> Invalid escape sequence \.
>>
>> Syntax error in cmake code at <elided> when parsing string
>> \1
>> Invalid escape sequence \1
>>
>>
>> Is this expected? The documentation doesn't seem to explicitly mention
>> replacement placeholders, but they are implicitly mentioned when talking
>> about () capturing.
>>
>> Also, I can use "^([^.]*)([.].*)?$" instead to get around the first
>> error, but then I get an error that the capture is empty. (It shouldn't be;
>> "${FOO}" is non-empty and the pattern is guaranteed to have a non-ambiguous
>> match for non-empty input.)
>>
>> --
>> Matthew
>>
>> --
>>
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at http://www.kitware.com/**
>> opensource/opensource.html<http://www.kitware.com/opensource/opensource.html>
>>
>> Please keep messages on-topic and check the CMake FAQ at:
>> http://www.cmake.org/Wiki/**CMake_FAQ<http://www.cmake.org/Wiki/CMake_FAQ>
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/cgi-**bin/mailman/listinfo/cmake-**developers<http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20121213/1f027efd/attachment.html>


More information about the cmake-developers mailing list