Regex cmake-编译正则表达式时出错

Regex cmake-编译正则表达式时出错,regex,cmake,Regex,Cmake,我有一个字符串:1.0.2-1,我需要得到一个子字符串:1.0.2下面的正则表达式在c++中运行良好: std::regex myReg(".+?(?=-)"); 当我尝试在cmake中使用该正则表达式时: STRING(REGEX MATCH ".+?(?=-)" OUTPUT $VER) 我发现错误: [INFO] RegularExpression::compile(): Nested *?+. [INFO] RegularExpression::compile(): Error in

我有一个字符串:
1.0.2-1
,我需要得到一个子字符串:
1.0.2
下面的正则表达式在c++中运行良好:

std::regex myReg(".+?(?=-)");
当我尝试在cmake中使用该正则表达式时:

STRING(REGEX MATCH ".+?(?=-)" OUTPUT $VER)
我发现错误:

[INFO] RegularExpression::compile(): Nested *?+.
[INFO] RegularExpression::compile(): Error in compile.
如何修复此问题?

不支持惰性量词,因此会显示错误消息

由于需要获得除
-
以外的字符的第一个匹配,因此可以使用

[^-]+
或者(告诉引擎仅从字符串开头查找匹配项):


你能不能试试
[^-]+
?或
^[^-]+
(仅从开头查看)。
^[^-]+