正则表达式中的点 (regex)

kal*_*jak 0 c regex

我正在使用 slre ( https://code.google.com/p/slre/ ) 为 ac 程序提供正则表达式库。

我想将 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])$"

我收到以下编译错误:警告:未知的 excape 序列 '\.' 我也用 '\\.' 试过了。--> 编译错误消失了,但它仍然说它不匹配。

   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);
   }
Run Code Online (Sandbox Code Playgroud)

settings[i].regex 是一个带有我上面提到的正则表达式的 char* settings[i].value 是一个 char* 我试图匹配的字符串是 8.8.8.8

有没有其他方法来检查一个点?

Alp*_*per 5

尝试 [.]

点在字符类中并不特殊。