检查字符串是否以CMake中的名称结尾

daupos2t  于 2023-02-04  发布在  其他
关注(0)|答案(2)|浏览(193)

我想检查CMAKE_SOURCE_DIR变量是否以特定的名称结尾。我需要使用MATCHES,但它似乎不起作用。
我写过:

if(CMAKE_SOURCE_DIR MATCHES "*MyFolderName")
# code
endif()

但它不起作用。我得到以下错误:

RegularExpression::compile(): ?+* follows nothing.
RegularExpression::compile(): Error in compile

我该怎么做才能修复匹配?

qzlgjiam

qzlgjiam1#

通常,在正则表达式中,“*”表示“重复前面的零次或多次”。CMake也不例外。对于字符串末尾的匹配,请使用$

CMAKE_SOURCE_DIR MATCHES "MyFolderName$"

CMake正则表达式在这里描述。

toiithl6

toiithl62#

MATCH需要正则表达式,而不是“文件glob”(通配符)。

if(CMAKE_SOURCE_DIR MATCHES ".*MyFolderName")
   # ...
endif()

或者试试这个:.*/MyFolderName。但它也将匹配/some/MyFolderName/path ...使用.*/MyFolderName$匹配最后一个路径名组件。

相关问题