gpt4 book ai didi

c - 正则表达式不正确 c

转载 作者:太空宇宙 更新时间:2023-11-04 06:56:33 25 4
gpt4 key购买 nike

嘿,所以我试图让这个正则表达式工作,当我输入“Hello”作为句子输入,然后输入“H”作为 rgx 时,我认为只是一个基本的正则表达式匹配正在输出它不是每次我尝试类似的东西。它只会随机正确匹配。

typedef char String[128];

int main(void) {

String rgx;
regex_t CompiledRegExp;

String sentences;
fgets(sentences, 128, stdin);

fgets(rgx, 128, stdin);
if (regcomp(&CompiledRegExp,rgx,0) != 0) {
printf("ERROR: Something wrong in the regular expression\n");
exit(EXIT_FAILURE);
}

if (regexec(&CompiledRegExp,sentences,0,NULL,0) == 0) {
printf("Yes, it's there\n");
} else {
printf("No, it's not there\n");
}

regfree(&CompiledRegExp);

return(EXIT_SUCCESS);
}

最佳答案

来自 man fgets (强调):

The fgets() function shall read bytes from stream into the array pointed to by s, until n−1 bytes are read, or a <newline> is read and transferred to s, or an end-of-file condition is encountered. The string is then terminated with a null byte.

正则表达式中的换行符与任何其他普通字符一样对待:它只匹配自身。所以如果你的正则表达式是 H后跟一个换行符,它只会匹配一个包含 H 的字符串后跟一个换行符。在您的示例输入中,H后面跟着一个 e .

关于c - 正则表达式不正确 c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43671218/

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