gpt4 book ai didi

c - 如何让 Ultraedit 正则表达式搜索在 C/C++ 代码中工作

转载 作者:太空宇宙 更新时间:2023-11-03 23:24:04 28 4
gpt4 key购买 nike

我很难让 Ultraedit 正则表达式在 C/C++ 代码中工作。我知道为 /w 添加额外的 / 但它仍然不起作用。

#include<regex.h>
#include <stdio.h>

int main()
{

int reti;
regex_t regex;
reti = regcomp(&regex, "^\w+\.c", 0);

if(!reti)
{
printf("compile success\n");
}

reti = regexec(&regex, "test.c", 0, NULL, 0);
if(!reti)
{
printf("match\n");
}
else
{
printf("mis match\n");
}

}

上面的正则表达式在 Ultraedit 上可以正常工作,但是如果像这里显示的那样放入 C 代码中,为什么它不能工作?

我希望打印出“匹配”,但是当我运行上面的代码时,我得到:

compile success
mis match

最佳答案

您需要再次对反斜杠进行转义,否则,它将被读取为转义序列。

reti = regcomp(&regex, "^\\w+\\.c", 0);

而且我认为您正在尝试将所有文​​件名与扩展名 .c 匹配,在这种情况下,您必须使用行尾 anchor 。

reti = regcomp(&regex, "^\\w+\\.c$", 0);

或者

reti = regcomp(&regex, "^[[:alnum:]_]+\\.c$", 0);

关于c - 如何让 Ultraedit 正则表达式搜索在 C/C++ 代码中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31556982/

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