gpt4 book ai didi

regex - CMake删除前两个字符正则表达式?

转载 作者:行者123 更新时间:2023-12-01 11:38:43 25 4
gpt4 key购买 nike

我有一个包含两个由空格分隔的包含路径的变量:

PATHS=-I/home/user/application_x/include -I/home/user/application_y/include

我想把它分成两个变量,然后删除 -I .这是我到目前为止想出的:
STRING(REGEX MATCH "[^ ]*" APPLICATION_X ${PATHS})
STRING(REGEX MATCH "[^ ]*$" APPLICATION_Y ${PATHS})

结果:
APPLICATION_X=-I/home/user/application_x/include
APPLICATION_Y=-I/home/user/application_y/include

如何删除 -I从每个字符串?文件夹名称“application_x”和“application_y”不是静态的,因此只有第一次出现 -I应该删除,否则如果文件夹名为“application_-I”,一切都会中断。

如果可以拆分变量并删除 -I在每条路径一个正则表达式中,这将是首选。

最佳答案

您可以使用 REGEX MATCH 执行以下操作

STRING(REGEX MATCH "/[^ ]*"  APPLICATION_X ${PATHS})
STRING(REGEX MATCH "/[^ ]*$" APPLICATION_Y ${PATHS})

或者您可以使用 REGEX REPLACE :
STRING(REGEX REPLACE "-I([^ ]*)" "\\1"  APPLICATION_X ${PATHS})
STRING(REGEX REPLACE "-I([^ ]*)$" "\\1" APPLICATION_Y ${PATHS})

关于regex - CMake删除前两个字符正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24225975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com