gpt4 book ai didi

C regexec 返回误报

转载 作者:行者123 更新时间:2023-11-30 16:25:54 25 4
gpt4 key购买 nike

我正在实现一个“银行”软件,在创建新用户时必须采用可接受的用户名、密码和余额。

BANK: create-user bob 1234 11111

这是正确输入的示例

BANK: create-user bob0101 1234 11111

这是不正确的,基本上是一个单词用户名、一个 4 位数字的 PIN 码和一些整数。

regexec 对于两个用户名输入都返回 0,尽管它绝对不应该返回 0。

代码当前

regex_t regex_s, regex_i, regex_p;
int reti_s = regcomp(&regex_s, "[a-z A-Z]+", REG_EXTENDED);
.
.
.
reti_s = regexec(&regex_s, cmd[1], 0, NULL, 0);

其中 cmd[1] 是用户名

我对 C 正则表达式没有太多经验,但我知道这不应该允许数字,任何帮助都会非常感谢!

最佳答案

如果您想匹配仅字母字符,则必须使用如下内容:

int reti_s = regcomp(&regex_s, "[a-z]+", REG_EXTENDED|REG_ICASE);

我根据 https://linux.die.net/man/3/regcomp 添加了 REG_ICASE 标志.

关于C regexec 返回误报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53235452/

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