首页 > 解决方案 > CMake正则表达式匹配转义字符抛出错误

问题描述

我有一个定义一些变量的配置文件:

foo.cfg:

NAME    = foo
VERSION = 0.1.0

和一个 cmake 文件,它定义了一个解析所述配置文件并将值存储在变量中的函数

解析.cmake:

function(parse_config file)
  file(READ ${file} _file_content)

  set(_property "NAME")
  set(_regex "${_property}\s*=\s\K\S+")

  string(REGEX MATCH ${_regex} _name ${_file_content})

  set(_NAME "${_name}")
endfunction()

但是当我包含脚本并尝试调用该函数时,出现以下错误:

Syntax error in cmake code at

[... path to "parse.cmake" ...]

when parsing string

${_property}\s*=\s\K\S+

Invalid character escape '\s'.

当我使用\\转义字符时,正则表达式找不到任何匹配项。

标签: regexcmake

解决方案


推荐阅读