gpt4 book ai didi

c - C 中的正则表达式用于匹配

转载 作者:行者123 更新时间:2023-11-30 14:51:04 26 4
gpt4 key购买 nike

我需要创建一个正则表达式,它可以匹配任何长度 < 99 且由两个 @ 括起来的字母数字字符串。 “@”之后的第一个字符也可以是“_”,我不确定如何解释。前任。 @U001@ 是有效的。 @_A111@ 也有效。但是,@____ABC@ 无效,@ABC 也无效。

我对正则表达式比较陌生,注意到\z 是一个无法识别的转义序列。如果重要的话,我正在尝试用 C11 编写它。

#include <regex.h>        
regex_t regex;
int reti;
char msgbuf[100];

/* Compile regular expression */
reti = regcomp(&regex, "^@[[:alnum:]]@\z", 0);
if (reti) {
fprintf(stderr, "Could not compile regex\n");
exit(1);
}

最佳答案

尝试使用以下模式:

^@[_[:alnum:]][:alnum:]{0,97}@

这是该模式的简要说明

^                from the start of the string
@ match @
[_[:alnum:]] match underscore or alpha
[:alnum:]{0,97} then match zero to 97 alpha
@ match @

代码:

reti = regcomp(&regex, "^@[_[:alnum:]][:alnum:]{0,97}@", 0);

关于c - C 中的正则表达式用于匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48575265/

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