CMake有许多强大的功能,其中一个就是字符串的正则表达式替换(string(regex replace))。这个功能可以让你使用正则表达式匹配文本模式,并将其替换为指定的文本。在本篇文章中,我们将介绍CMake的字符串(regex replace)的使用方法。 语法 -- ```scss string(regex_replace regex_pattern input_string replacement) ```...
这里,我使用 string(REGEX REPLACE ...) 语句达到此目的。 在CMakeLists.txt 中增加以下语句,同时将 config.h.in 中的@TIME_DAY@ 改为@TIME_DAY_NUM@: string(REGEX REPLACE "(^[0])([1-9]*)" "\\2" TIME_DAY_NUM ${TIME_DAY}) 这语句的意思是:如果变量 TIME_DAY 的值以 '0' 开头,那么...
) string(REGEX REPLACE "Hello" "Hi" myOutString ${myString}) message ( STATUS "myString = ${myString}" ) message ( STATUS "myOutString = ${myOutString}" ) windows11+powershell cmake .. PS D:\work\modern_cmake_work\ModernCMake\codes\cmake\string\regex-replace\01\build> cmake ....
分割:使用string(REGEX MATCHALL)和string(STRIP)命令进行字符串分割。展示分割操作的流程图。字符串函数:使用string()函数进行各种操作,包括REGEX MATCH、REGEX REPLACE、CONCAT等模式。详细介绍每个模式的用途和示例。项目构建应用:在构建项目中,可以使用string(LENGTH)、string(COMPARE)、string(FIND)等...
string(REGEX REPLACE "define NV_TENSORRT_MAJOR +([0-9]+)" "\\1" TENSORRT_MAJOR_VERSION "${TENSORRT_MAJOR_VERSION}") message(STATUS "Current TensorRT header is ${TENSORRT_INCLUDE_DIR}/NvInfer.h. " "Current TensorRT version is v${TENSORRT_MAJOR_VERSION}. ") ...
foreach(file_path ${${src_files}})string(REGEX REPLACE ${CMAKE_CURRENT_SOURCE_DIR}/\(.*\) \\1relative_path ${file_path})string(REGEX MATCH".+\\.c.*"is_match ${relative_path})if(is_match)string(REGEX REPLACE"(.+)\\.c.*"\\1cpp_relative_dir ${relative_path})if(NOT cpp_re...
string(REGEX REPLACE "(.*)/.*" "\\1" LIB_NAME ${child}) #字符串替换,用/前的字符替换/*h if(IS_DIRECTORY ${LIB_NAME}) #判断是否为路径 LIST(APPEND dirlist ${LIB_NAME}) #将合法的路径加入dirlist变量中 endif() #结束判断 endforeach() #结束for循环 ...
string(REGEX MATCH "[^/]+$" testfile ${demo}) #每一个cpp的名字,REGEX正则 string(REPLACE ".cpp" "" basename ${testfile})#取文件名中没有后缀的部分,REPLACE更换 add_executable(${basename} ${demo})#文件名和执行程序的名字不一样,每一个执行程序的名字也不一样 ...
1. regex 2. regex_match 3. regex_search 4. regex_replace 这些函数可以帮助开发人员实现对字符串的匹配、搜索和替换操作,非常方便实用。 三、Cmake中的正则表达式实例 以下是一个在Cmake中使用正则表达式的简单示例: ```cmake set(input_string "Hello, Cmake! This is a test string.") set(regex_pat...
其中pattern是要替换的字符,replacement是替换成的字符,x是对应的string或string vector。