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.
如何修复此问题?不支持惰性量词,因此会显示错误消息
由于需要获得除-
以外的字符的第一个匹配,因此可以使用
[^-]+
或者(告诉引擎仅从字符串开头查找匹配项):
你能不能试试
[^-]+
?或^[^-]+
(仅从开头查看)。
^[^-]+