gpt4 book ai didi

c - SLRE 正则表达式不起作用

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

我正在使用 SLRE ( https://code.google.com/p/slre/)

我正在用这种方式检查 15 个具有不同正则表达式的字符串:

struct slre        slre;
struct cap captures[4 + 1];
int i = 0;
int numberOfSettings = 15;
for (i; i < numberOfSettings; i++) {
if (!slre_compile(&slre, settings[i].regex)) {
printf("Error compiling RE: %s\n", slre.err_str);
}
else if (!slre_match(&slre, settings[i].value, strlen(settings[i].value), captures)) {
printf("\nSetting '%s' does not match the regular expression!", settings[i].internName);
}
}

我正在使用 (settings[i].regex) 解析 IP 地址的正则表达式是:

^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])[.]){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$

检查(settings[i].value)的值为8.8.8.8

我也在 javascript 中使用相同的正则表达式,它们按预期工作。

有谁知道为什么这会返回 false?

最佳答案

SLRE 不支持 | - 请参阅 slre.h 中的“支持的语法”部分.

(除非您有特殊原因不这样做,否则我建议您使用 PCRE。)

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

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